繁体   English   中英

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

[英]Python time.clock() vs time.time() for timing a spawned process

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

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

time.time()获取实际的实际时差,因此将更容易注意到睡眠。

time.clock()可能是准确的,但未测量挂钟时间。 在您的机器上,它可能正在测量CPU时间。 由于测试程序几乎将所有时间都花在睡眠上( time.sleep(2.5) ),因此它只占用很少的CPU时间。 time.time()正在测量挂钟时间。 阅读文档以了解更多;-)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM