通过 Python 可以达到的最高时间精度是多少?



考虑一个非常简单的计时器;

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次 第二。

最新更新