【发布时间】:2018-04-28 11:39:35
【问题描述】:
我在 python 中的 test time.clock() 函数中使用了这段代码
start = time.clock()
print(start)
time.sleep(3)
end = time.clock()
print(end)
print(end-start)
结果是
0.282109
0.282151
4.199999999998649e-05
文档说“在 Unix 上,将当前处理器时间作为浮点数返回,以秒为单位。”但是如果线程休眠了 3 秒,end-start 的结果怎么会这么低呢?
【问题讨论】:
-
"此函数的行为取决于平台:使用
perf_counter()或process_time()代替,取决于您的要求,以获得明确定义的行为。" -
你在 Unix 上吗?因为它看起来像你得到Windows behavior“在Windows上,这个函数返回自第一次调用这个函数以来经过的挂钟秒数,作为一个浮点数,基于Win32函数
QueryPerformanceCounter()。分辨率是通常优于一微秒。” -
@PatrickHaugh 这是一个非常奇怪的挂钟,在 3 秒的睡眠中只过去了 0.00004 秒:P
-
@PatrickHaugh 我在 Unix 上
-
如文档所述,它以秒为单位表达。不保证是一秒或多秒。在您的情况下,结果是 0.00004 秒。处理器时间与挂钟时间不同。
标签: python