我正在使用一个非常简单的代码来计算每个循环的时间for
陈述。它看起来像这样:
import time
for item in list_of_files:
# Start timing this loop.
start = time.clock()
# Do a bunch of stuff.
# Get time elapsed in seconds.
elapsed = time.clock() - start
# Get minutes and seconds.
m, s = divmod(elapsed, 60)
# Print result.
print 'End of analysis for %s in %dm %02ds.\n'% (item, m, s)
大多数时候这会产生正确的输出,例如9m 52s
但有时使用大循环(需要一些时间)我会得到负面结果,例如-53m 17s
.
我无法确定结果开始显示为负值的明确限制,但它显然只发生在经过时间 > 20 分钟的情况下,但不会发生在every循环花费> 20 分钟(即:它不一致)。
我的代码中是否有某些内容可以对导致此问题的每个循环进行计时?
Add
我在用着Spyder
作为我的 IDE。我比较了一下如何time.clock()
表现 vstime.time()
这就是我所看到的:
>>> st1, st2 = time.clock(), time.time()
>>> st1,st2
(507.65, 1374502193.357196)
>>> print time.clock()-st1, time.time()-st2
0.14 15.1921429634
>>> print time.clock()-st1, time.time()-st2
0.34 35.0087578297
>>> print time.clock()-st1, time.time()-st2
0.67 69.8715758324
>>> print time.clock()-st1, time.time()-st2
0.77 80.0557789803
>>> print time.clock()-st1, time.time()-st2
1.25 130.559605837
>>> print time.clock()-st1, time.time()-st2
3.02 309.845729828
>>> print time.clock()-st1, time.time()-st2
8.9 899.936934948
不应该time.clock()
返回经过的时间(以秒为单位)?这time.time()
call 准确跟踪经过的时间(以秒为单位)(例如,最后一次调用是在 15 分钟后进行的,相当于 900 秒),但我不知道是什么time.clock()
是在做。