gpt4 book ai didi

python 时间结果不符合预期 : time. time() - time.time()

转载 作者:太空宇宙 更新时间:2023-11-04 08:29:54 29 4
gpt4 key购买 nike

在尝试 time 的 python 执行时,我发现在一条语句中两次调用 time.time() 时出现奇怪的行为。在语句执行期间获取time.time() 有一个非常小的处理延迟。

例如time.time() - time.time()

如果在完美世界中立即执行,将计算结果为 0。

但是,在现实世界中,这会导致非常小的数字,因为在处理器执行第一次 time.time() 计算和下一次计算时存在假定的延迟。但是,当运行相同的执行并将其与以相同方式计算的变量进行比较时,结果会朝一个方向倾斜。

请参阅下面的小代码片段。这也适用于非常大的数据集

import time

counts = 300000

def at_once():
first = 0
second = 0
x = 0
while x < counts:
x += 1
exec_first = time.time() - time.time()
exec_second = time.time() - time.time()

if exec_first > exec_second:
first += 1
else:
second += 1


print('1sts: %s' % first)
print('2nds: %s' % second)

打印:

1sts: 39630
2nds: 260370

除非我的逻辑不正确,否则我希望结果非常接近 50:50,但事实似乎并非如此。是否有人可以解释导致此行为的原因或指出导致结果偏向一个方向的代码逻辑的潜在缺陷?

最佳答案

难道是exec_first == exec_second?在这种情况下,您的 if-else 会将秒加 1。

尝试将 if-else 更改为类似的内容:

if exec_first > exec_second:
first += 1
elif exec_second > exec_first:
second += 1
else:
pass

关于python 时间结果不符合预期 : time. time() - time.time(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53733633/

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