0

我正在尝试为我从 python 调用的外部进程的执行计时。我想计时,在这里看到 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 中运行

4

2 回答 2

1

time.clock()返回代码中花费的计算时间;由于sleep需要很少的 CPU,因此不会花费太多time.clock时间。

time.time()获得实际的现实生活时差,因此会更容易注意到睡眠。

于 2013-09-20T21:56:22.773 回答
0

time.clock()可能是准确的,但不是在测量挂钟时间。在你的盒子上,它可能正在测量 CPU 时间。由于您的测试程序几乎所有时间都在休眠(time.sleep(2.5)),因此它积累的 CPU 时间非常少。 time.time()不过,正在测量挂钟时间。 阅读文档以获取更多信息;-)

于 2013-09-20T21:59:43.373 回答