Python time.clock() vs time.time() 用于对生成的进程进行计时



我正在尝试计时我从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

为什么时间时钟在这里如此错误?

编辑:我应该提到我正在MacOSX上运行此测试,并且部署的代码将在Ubuntu中运行

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

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

time.clock()可能是

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

相关内容

最新更新