【发布时间】:2014-11-05 06:32:27
【问题描述】:
我对@987654323@ 和time.process_time() 的新功能有一些疑问。
对于前者,来自文档:
返回性能计数器的值(以秒为单位),即具有最高可用分辨率的时钟以测量短持续时间。它确实包括睡眠期间经过的时间,并且是系统范围的。返回值的参考点是未定义的,因此只有连续调用的结果之间的差异才有效。
这种“最高分辨率”在所有系统上都相同吗?或者它总是稍微取决于,例如,我们使用的是 linux 还是 windows?
问题来自阅读time.time() 的文档,它说“并非所有系统都提供比 1 秒更精确的时间”,那么它们现在如何提供更好和更高的分辨率?
关于后者,time.process_time():
返回当前进程的系统和用户 CPU 时间之和的值(以秒为单位)。它不包括睡眠期间经过的时间。根据定义,它是进程范围的。返回值的参考点是未定义的,因此只有连续调用的结果之间的差异才有效。
我不明白,那些“系统时间”和“用户 CPU 时间”是什么?有什么区别?
【问题讨论】:
-
更多的是
duck按功能而不是实现来使用时间。即,根据您的需要使用time.time()或time.monotonic()。 -
请参阅this comment,了解一个进程使用的所有内核如何在
time.clock和time.process_time中求和,但子进程不是。另见this discussion of precision(当然,因系统而异)。
标签: python python-3.x