我正在尝试执行一个我从python调用的外部进程。我想给它计时并看到here那个time.clock()是要走的路。但是我看到time.time()的结果非常不一致。我使用time.sleep设置了一个简单的例子来模拟外部过程:
def t1():
t0 = time.clock()
time.sleep(2.5)
return time.clock() - t0
def test_t1():
timings = []
for i in range(100):
timings.append(t1())
print sum(timings)/len(timings)
t2 / test_t2同样定义,但使用time.time()而不是time.clock()
>>>test_t1()
5.884e-05
>>>test_t2()
2.49959212065
为什么会出现time.clock错误的情况呢?
编辑:我应该提一下,我在MacOSX上运行此测试,部署的代码将在Ubuntu中运行
答案 0 :(得分:1)
time.clock()
返回在代码中花费的计算时间;由于sleep
只需要很少的CPU,因此不会花费time.clock
时间。
time.time()
获得实际的实际时间差异,因此会更容易注意到睡眠。
答案 1 :(得分:0)
time.clock()
可能是准确的,但不是衡量挂钟时间。在你的盒子上,它可能正在测量CPU时间。由于您的测试程序几乎所有时间都在休眠(time.sleep(2.5)
),因此它累积的CPU时间非常短。 time.time()
正在测量挂钟时间。 Read the docs了解更多信息; - )