我有一个由函数myFunc(m,n)
基本上,该函数包含两个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。为什么呢?
答案 0 :(得分:4)
time.time() - time.time()
当0.0
不需要很长时间时,myFunc
将为/code
。
答案 1 :(得分:2)
即使时间总是作为浮点数返回,但并非所有系统都提供的精度超过1秒。
因此,如果myFunc
花费的时间不到一秒,并且您正在使用此类操作系统,则两次time.time
调用之间的差异可能为0.0。
您可以使用timeit.default_timer
代替time.time
。 timeit.default_timer
会为您的系统选择最佳计时器(time.time
,time.clock
或time.perf_counter
)。
另请注意,the timeit module提供了更准确的方法来测试代码段的效果。