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. Docker使用遇到问题Got permission denied while trying to connect to the Docker daemon socket解决方案
  2. 在(CListView)列表视图中添加右键菜单的方法
  3. freemarker 读取字符串模板,(非文件)
  4. Android(2)-----Fragment //(第七周后的知识)
  5. CSS学习笔记-04 a标签-导航练习
  6. beetl的使用感受
  7. Linux系统NFS故障现象
  8. easyui弹出窗关闭前调用确认窗口,先关闭页面后调用弹出窗口
  9. fastdfs+nginx make时报错fatal error:fdfs_define.h: 没有那个文件或目录
  10. OSChina 周二乱弹 —— 我国领先世界的IT技术
  11. ANSI, unicode, UTF-8编码详解
  12. cognos报表制作(三)Cube开发
  13. Linux普通用户su root权限的开启和禁止
  14. 我的优点是会使用计算机用英语怎,优点用英语,我的50个优点。
  15. 二维静电场有限元matlab,利用MATLAB计算电磁场有关分布
  16. Windows XP快捷键大全
  17. 马云:大数据时代_最重要的是做最好的自己
  18. 计算机表格数字怎么,电脑怎么在表格里填字-在EXCEL中数字怎么输入到方框□内??...
  19. 夜半加班之附魔吃药篇!
  20. Hibernate查询多个表的数据的方法

热门文章

  1. python 遍历函数用法_python中enumerate函数遍历元素用法分析
  2. 【小破站下载工具】Python tkinter 实现网站下载工具,所有数据一键获取
  3. LG-P2657 [SCOI2009]windy数
  4. 7-3 判断闰年及星期几 (20 分)
  5. ssh隧道原理及三种隧道转发模式
  6. 未来十年,互联网行业到底需要什么样的运营?
  7. 如何开发出爆款棋牌游戏app
  8. 1.《小狗钱钱》读书笔记
  9. 面试过阿里的P7大佬分享:180+道Java面试题目!含答案解析!
  10. mac os 关闭sip保护有什么好处?有什么坏处?macOS为什么关闭sip?