问题描述
x = time.time_ns()
y = time.time_ns()
print(x == y)
理想情况下,我希望上面的函数打印False
而不在中间插入一堆(不必要的代码),在Python中有什么好方法吗?还是Python变量的粒度限制使其无法实现?
解决方法
不能保证系统实际上有足够的时钟,但是time.perf_counter
将为您提供最高的粒度。 Python文档声称它使用具有“最高可用分辨率来测量短持续时间”的时钟。
返回性能计数器的值(以分数秒为单位),即具有最高可用分辨率的时钟以测量较短的持续时间。它确实包括整个系统的睡眠时间。返回值的参考点是不确定的,因此仅连续调用的结果之间的差有效。
还有time.perf_counter_ns
,它与上面的类似,但是以整数纳秒的形式返回时间,避免了浮点精度的限制(尽管不能保证该值实际上具有纳秒的精度)。 / p>
time.perf_counter
是timeit
模块(source)的默认计时器。