time.sleepfunction的准确性取决于底层操作系统的睡眠准确度。 对于非实时操作系统,就像一个股票Windows,你可以睡的最小时间间隔是10-13ms。 当在10-13ms以上时,我已经看到准确的睡眠时间在几毫秒内。

更新:就像在下面的文档中提到的那样,在一个循环中进行睡眠是很常见的,如果在早期唤醒你的话,它将确保回到睡眠状态。

我还应该提到,如果您正在运行Ubuntu,则可以通过安装rt内核软件包(至less在Ubuntu 10.04 LTS中)来尝试伪实时内核(使用RT_PREEMPT补丁集)。

编辑:纠正非实时Linux内核有最小的睡眠时间间隔接近1毫秒,然后10毫秒,但它以不确定的方式变化。

人们对操作系统和内核之间的差异是非常正确的,但是在Ubuntu中我看不到任何粒度,我在MS7中看到1 ms的粒度。 build议time.sleep的一个不同的实现,不只是一个不同的节拍率。 更仔细的检查表明Ubuntu的粒度在1μs左右,但这是由于我用来测量精度的time.time函数。

从文档 :

另一方面, time()和sleep()的精度优于它们的Unix等价物:时间表示为浮点数, time()返回最准确的时间(使用Unix gettimeofday如果可用))和sleep()将接受一个非零分数的时间(Unix select是用来实现这一点,如果可用)。

更具体地说, sleep() :

暂停执行给定的秒数。 该参数可能是一个浮点数,以表示更准确的睡眠时间。 实际的中止时间可能会less于所要求的时间,因为任何捕捉到的信号都会在执行该信号的捕捉程序之后终止sleep() 。 而且,由于系统中的其他活动的调度,中止时间可能比任意量所要求的更长 。

你为什么不知道:

from datetime import datetime import time def check_sleep(amount): start = datetime.now() time.sleep(amount) end = datetime.now() delta = end-start return delta.seconds + delta.microseconds/1000000. error = sum(abs(check_sleep(0.050)-0.050) for i in xrange(100))*10 print "Average error is %0.2fms" % error

为了logging,我得到了我的HTPC 0.1毫秒的错误和我的笔记本电脑,这两个Linux机器2毫秒。

这里是我对威尔伯特的回答的后续:对于Mac OS X优胜美地,这是相同的,因为它还没有被提及。

看起来好像有很多时间睡在你请求的时间的1.25倍左右,有时候会睡眠你请求的时间的1到1.25倍。 几乎从来没有(约1000个样品中的两倍)睡眠时间明显超过您要求的1.25倍。

另外(没有明确显示)1.25的关系似乎保持不错,直到你低于大约0.2毫秒,之后它开始有点模糊。 另外,在请求的时间超过20毫秒之后,实际时间似乎比您请求的时间长5毫秒。

同样,在OS X中,它似乎是一个完全不同的sleep()实现,而不是Windows中的任何一个Linux核心Wilbert所使用的。

你不能保证任何有关睡眠的东西,除非睡眠时间至less要尽最大的努力才能睡觉(信号可以在时间到了之前消灭你的睡眠,而更多的东西可以让它运行长)。 可以肯定的是,标准桌面操作系统上的最低限度是16ms左右(定时器的粒度加上上下文切换的时间),但是当你尝试的时候,提供的参数的偏差会很大睡10s毫秒。 信号,其他保持GIL的线程,内核调度的乐趣,处理器的速度步进等等,都可以对线程/进程实际hibernate的持续时间造成破坏。

python timesleep单位_python的time.sleep()有多准确?相关推荐

  1. python中单位转换_Python字节单位转换实例

    我就废话不多说了,直接上代码! from enum import Enum class Values(): values={'B':1} @staticmethod def getValues(): ...

  2. Python学习教程(Python学习视频_Python学些路线):Day05 总结和练习

    Python学习教程(Python学习视频_Python学些路线):总结和练习 练习清单 寻找"水仙花数". 寻找"完美数". "百钱百鸡" ...

  3. 视频教程-快速入门Python基础教程_Python基础知识大全-Python

    快速入门Python基础教程_Python基础知识大全 十余年计算机技术领域从业经验,在中国电信.盛大游戏等多家五百强企业任职技术开发指导顾问,国内IT技术发展奠基人之一. 杨千锋 ¥99.00 立即 ...

  4. Python学习教程(Python学习视频_Python学习路线):Day04循环结构

    Python学习教程(Python学习视频_Python学习路线):循环结构 循环结构的应用场景 如果在程序中我们需要重复的执行某条或某些指令,例如用程序控制机器人踢足球,如果机器人持球而且还没有进入 ...

  5. 视频教程-快速入门Python基础教程_Python基础进阶视频-Python

    快速入门Python基础教程_Python基础进阶视频 十余年计算机技术领域从业经验,在中国电信.盛大游戏等多家五百强企业任职技术开发指导顾问,国内IT技术发展奠基人之一. 杨千锋 ¥199.00 立 ...

  6. python字节单位换算

    python字节单位换算,将'B'转换为'B', 'K', 'M', 'G', 'T', 'PB') def StrOfSize(size):'''递归实现,精确为最大单位值 + 小数点后三位'''d ...

  7. Python学习教程(Python学习路线_Python基础学习教程_Python视频教程):初学者新手怎样快速入门Python

    Python学习教程(Python学习路线_Python基础学习教程_Python视频教程):初学者新手怎样快速入门Python? 人生苦短,我用Python!!!短短几个字,现在在各大学习类平台随处 ...

  8. python指针参数_Python调用C++ 传数组指针参数

    最近需要用到Python下调用C++程序,看了很多博客记录下最实用的一种方法. 很多的方法,需要在编译C++程序的时候给出Python的库.因为在程序里引用了"Python.h". ...

  9. Python生成Code128C条形码:打印高效、识别准确

    Python生成Code128C条形码:打印高效.识别准确 在如今这个信息时代,条形码已经成为了生活工作中不可缺少的一部分,而Code128C条形码也是其中的一种常见类型.本文将带您了解如何使用 Py ...

最新文章

  1. python 应声虫怎么做_职场人士如何处理好人际关系:要服从,但不要做毫无主见的应声虫...
  2. android44投屏开发,ARDC(B1425)android投屏利器,开发好帮手.zip
  3. SAP PI - 单栈与双栈
  4. 拼接字符串的优雅方式
  5. 机器学习模型 知乎_机器学习-模型选择与评价
  6. LeetCode 2089. 找出数组排序后的目标下标
  7. IoT -- (二) 物联网传感器介绍
  8. linux看网络电影,Linux中看电影、听音乐
  9. ActiveMq工作笔记002---Centos7.3安装ActiveMq
  10. python学习——matplotlib库——折线图
  11. POI导出数据内存溢出问题
  12. python解析properties文件
  13. C++ string获取字符串元素:[]和at()
  14. Java自学路线图之Java系统自学
  15. 怎么将几张pdf合并成一张_Adobe Acrobat怎么将多个PDF文件合并成一个pdf页面?
  16. python 图像二值化处理
  17. 【英语-同义词汇词组】study和research的用法及区别
  18. 1957:【12NOIP普及组】质因数分解
  19. STM32小项目之ds18b20测温在oled上显示
  20. 压电式雨量传感器数字感知降雨量

热门文章

  1. 如何安装seed_ubantu20.04
  2. 割血放送,你要的资料都在这里(java、python、C#...)
  3. 常用xshell5基本命令
  4. 期货反向跟单--“盘手”转化为“散户”的战斗
  5. 指标体系的概念和类型,总算有人讲明白了
  6. 使用BitLocker加密磁盘
  7. 洛谷· [AHOI2008]紧急集合 / 聚会
  8. Python3.8+OpenCV4 实现二维码扫码
  9. 二阶无源低通滤波器的截止频率与RC关系
  10. [附源码]SSM计算机毕业设计水库水面漂浮物WEB系统JAVA