为什么time.time()给出0.0?

时间:2015-10-12 17:01:55

标签: python

我有一个由函数myFunc(m,n)

定义的python程序

基本上,该函数包含两个for循环。

def myFunc(m, n) : 
    for i in range(m) : 
        for j in range(n) : 
            # do it ...
    return 

我想计算m,n=20,20

的时间

我这样做:

start_time = time.time()
b = myFunc(m,n)
elapsed_time = time.time() - start_time
print elapsed_time

结果几乎总是0.0。为什么呢?

2 个答案:

答案 0 :(得分:4)

time.time() - time.time()0.0不需要很长时间时,myFunc将为/code

答案 1 :(得分:2)

Per the time.time docs

  

即使时间总是作为浮点数返回,但并非所有系统都提供的精度超过1秒。

因此,如果myFunc花费的时间不到一秒,并且您正在使用此类操作系统,则两次time.time调用之间的差异可能为0.0。

您可以使用timeit.default_timer代替time.timetimeit.default_timer会为您的系统选择最佳计时器(time.timetime.clocktime.perf_counter)。

另请注意,the timeit module提供了更准确的方法来测试代码段的效果。