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