Python time.sleep的精度

Python的延迟

  • Python的time.sleep()精度只有秒!
  • 结论

Python的time.sleep()精度只有秒!

延迟是一个非常重要的功能,有时候我们确实需要精确的延迟。
Python中的延迟方法貌似只有

import time
A = time.time()
time.sleep(2)
B = time.time()
X = B - A
print(X)

上述代码可以延迟2秒,
X结果为:2.0149145126342773

那么time.sleep究竟能多精确呢?其实它根本不怎么精确,如果你期望用它来达到毫秒级别的延迟,还是洗洗睡吧。

import time
A = time.time()
time.sleep(0.001)
B = time.time()
X = B - A
print(X)

结果为:
在这里插入图片描述

而实际上,你如果将0.001改为更大一点,比如0.005,那么结果也不会发生改变,
参数改为0.005,延迟还是一样的

15毫秒貌似就是 在 Windows 环境下,Python的极限了。
为什么说是Windows环境下呢,因为我用虚拟机试了试,Ubuntu的延迟精确性要好很多。但也仅仅是从16ms的离谱偏差变成了几毫秒的离谱偏差,不知道这是不是和虚拟机有关。
Python time.sleep的精度_第1张图片
那么,如果我就限制参数为0.015 ,延迟的是否准确呢?
答案是偶尔不准……
我自己的测试过程中,大概每四次会出现一次0.030的结果。

结论

总结一下,那就是希望用Python做到精确的毫秒级别的延迟是不要想了。虽然15毫秒的参数可以得到正确的结果,但是还是会出现不精确的结果。因此,我个人认为15毫秒以上的延迟虽然可以,但是精度上,却不可以接受。不是一个可以被使用在需要高精度实时性的系统中的延迟精度。目前来看,Python time.sleep的可以被接受的精度只有秒。

你可能感兴趣的:(Python,python)