首页 > 解决方案 > 具有最小可能粒度的时间函数?

问题描述

x = time.time_ns()
y = time.time_ns()
print(x == y)

理想情况下,我希望打印上述函数,False而不会在两者之间粘贴一堆(不必要的代码)——在 Python 中有没有好的方法来做到这一点?或者 Python 变量的粒度限制是否使这成为不可能?

标签: pythontime

解决方案


无法保证系统实际上具有足够粒度的时钟,但time.perf_counter会为您提供可用的最高粒度。Python 文档声称它使用具有“最高可用分辨率来测量短持续时间”的时钟。

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

还有time.perf_counter_ns,它与上述类似,但以整数纳秒返回时间,避免了浮点精度限制(尽管不能保证该值实际上具有纳秒精度)。

time.perf_countertimeit模块的默认计时器(source)。


推荐阅读