gpt4 book ai didi

python - 计时器显示负时间过去

转载 作者:太空狗 更新时间:2023-10-29 21:05:50 25 4
gpt4 key购买 nike

我正在使用一个非常简单的代码来为 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 分钟,而不是发生在 每个 循环 > 20 分钟的情况下(即:它不一致)。

我的代码中是否有某些东西可以对导致此问题的每个循环进行计时?

添加

我正在使用 Spyder 作为我的 IDE。我比较了 time.clock()time.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() 调用以秒为单位准确跟踪耗时(例如,最后一次调用是在 15 分钟后进行的,等于 900 秒)但我不知道 time.clock() 正在做。

最佳答案

我怀疑您遇到了某种溢出问题。

http://linux.die.net/man/3/clock

时钟的 linux 手册页建议时钟周期的返回值,因此如果时钟碰巧以高值开始并以低值停止,并且您的差异是有符号的,您可能会得到一个负值的时间流逝.

由于您正在为持续数秒的事件计时,也许 time.time() 函数更适合您正在做的事情。

关于python - 计时器显示负时间过去,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17788724/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com