让我们假设我们有一个用Python编写的日志记录功能(可能不相关,但仍然是),日志记录还记录了日志中的时间。
然后在永不停止的while循环中经过一段时间后,有人会更改系统时钟(由sysadmin的系统本身)。当然,所有的时间都在日志中搞定(特别是如果结果是时钟已被发回一段时间)。
有什么方法可以通过在whileloop中拥有一个自己的相对时钟来阻止这种情况吗?我想在循环之前注意时间,然后测量循环中的迭代时间并手动将其添加到保存的时间,但当然这会在一段时间后漂移得非常糟糕。
有什么建议吗?
答案 0 :(得分:2)
如果您在UNIX系统下工作,os.times()
不会受到系统时间更改的影响:
<强> os.times()强>
返回表示累积的5元组浮点数 (处理器或其他)时间,以秒为单位。这些项目是:用户时间, 系统时间,孩子的用户时间,孩子的系统时间和已用时间 从过去的固定点开始的实时,按此顺序。看看Unix 手动页面时间(2)或相应的Windows平台API 文档。在Windows上,只填充前两个项目 其他人都是零。
>>> import os
>>> os.times()
(0.01, 0.0, 0.0, 0.0, 17194492.75)
>>> os.times()[4]
17194500.18