考虑一个非常简单的计时器;
start = time.time()
end = time.time() - start
while(end<5):
end = time.time() - start
print end
这个计时器有多精确?我的意思是,与实时时钟相比,它的同步性和实时性如何?
现在是真正的问题;
可以用 Python 精确测量的最小时间尺度是多少?
这完全取决于平台。使用该timeit.default_timer()
功能,它将为您的平台返回最精确的计时器。
从文档中:
以特定于平台的方式定义默认计时器。在 Windows 上,
time.clock()
具有微秒粒度,但time.time()
的粒度是 1/60 秒。在 Unix 上,time.clock()
具有 1/100 秒的粒度,并且time.time()
更加精确。
因此,在 Windows 上,您可以获得微秒,在 Unix 上,您将获得平台可以提供的任何精度,通常(远)优于 1/100 秒。
这完全取决于您运行它的系统 - 不能保证 Python 有任何跟踪时间的方式。
也就是说,假设您将在现代系统上获得毫秒精度是非常安全的,除此之外,它确实高度依赖于系统。引用文档:
尽管此模块始终可用,但并非所有功能都适用于所有平台。该模块中定义的大部分函数都调用同名的平台 C 库函数。有时查阅平台文档可能会有所帮助,因为这些函数的语义因平台而异。
和:
各种实时函数的精度可能低于表达它们的值或参数的单位所建议的精度。例如,在大多数 Unix 系统上,时钟每秒只“滴答”50 或 100 次。