【发布时间】:2017-03-28 10:26:42
【问题描述】:
我循环 1000 次,延时 1ms 并计算总时间。有趣的是,总时间是 15.6 秒而不是 1 秒。当我打开谷歌浏览器并浏览一些网站时,它运行正常,总共 1 秒。此外,它在 Macbook 上也运行良好。 我想知道我需要采取什么样的解决方案来解决这个问题?请尝试在没有打开 Chrome 的情况下运行它,然后在打开 Chrome 的情况下再次运行它以查看差异。当 Quora 或 Reddit 或 Stackoverflow 在我的系统上打开时,它可以正常运行。
from timeit import default_timer as timer
import time
start = timer()
for i in range(1000):
time.sleep(0.001)
end = timer()
print ("Total time: ", end - start)
编辑:我没有在 Python 上运行它。我刚刚打开Chrome浏览了一些网站来加快延时。
更新:这是关于 Windows 的计时器分辨率。所以基本上,Chrome 将计时器分辨率从 15.6 毫秒更改为 1 毫秒。这篇文章解释的很好:https://randomascii.wordpress.com/2013/07/08/windows-timer-resolution-megawatts-wasted/
【问题讨论】:
-
你是如何在 chrome 中运行 python 的?这非常令人困惑。
-
您的错误是假设
sleep(0.001)将休眠一毫秒,而不仅仅是至少 1ms。您可能想阅读stackoverflow.com/questions/9518106 -
致 Eli:我没有在 Python 上运行它。我刚刚打开 Chrome 浏览了一些网站以加快时间延迟。很抱歉造成混乱。
-
@IkerHua:为什么会增加延时?
-
-Jon:我知道它不会精确到毫秒。但不确定性是巨大的。当我在 Chrome 打开时运行它时,循环 1000 次需要 1.003 秒。 Chrome 未打开时,循环 1000 次需要 15.6 秒。这两个试验之间的代码没有修改。这是最让我困惑的地方。
标签: windows multithreading python-3.x