了解 time.perf_counter() 和 time.process_time()

24 浏览
0 Comments

了解 time.perf_counter() 和 time.process_time()

我对新功能time.perf_counter()time.process_time()有一些问题。

对于前者,根据文档:

返回性能计数器的值(以小数秒为单位),即用于测量短时间间隔的具有最高可用分辨率的时钟。它包括休眠期间经过的时间,并且是系统范围内的。返回值的参考点是未定义的,因此只有连续调用的结果之间的差异是有效的。

这个“最高分辨率”在所有系统上都是相同的吗?或者是否总是稍微依赖于我们使用的操作系统,例如linux还是windows?

这个问题是因为阅读time.time()的文档时,它说“不是所有系统都提供比1秒更高精度的时间”,那么现在它们如何提供更好和更高的分辨率呢?

关于后者,time.process_time()

根据文档:

返回当前进程的系统和用户CPU时间之和的值(以小数秒为单位)。它不包括休眠期间经过的时间。它是进程范围内的。返回值的参考点是未定义的,因此只有连续调用的结果之间的差异是有效的。

我不明白,“系统时间”和“用户CPU时间”是什么?它们有什么区别?

0