Python time.clock()vs time.time()用于计算生成的进程

时间:2013-09-20 21:38:43

标签: python

我正在尝试执行一个我从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中运行

2 个答案:

答案 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了解更多信息; - )