time.clock()没有正确返回时间

时间:2016-05-09 09:04:33

标签: python time clock

此代码:

<commands> 
 <command idMso="FileSave" onAction="mySave" /> 
</commands> 

返回:

public void mySave(IRibbonControl control, bool cancelDefault)
{
    //Do whatever you want
    //Don't forget to save manually
}

正如您所看到的,返回的时间似乎并没有返回以秒表示为整数的经过时间,即使这是文档说它应该做的事情。这有什么不对?

编辑:我使用的是Mac OS X El Capitan

2 个答案:

答案 0 :(得分:1)

您可能应该阅读手册:

  

在Unix上,将当前处理器时间返回为以秒为单位的浮点数。精度,实际上是“处理器时间”含义的定义,取决于同名C函数的精度,但无论如何,这是用于对Python或时序算法进行基准测试的函数。   在Windows上,此函数返回自第一次调用此函数以来经过的挂钟秒,作为浮点数,基于Win32函数QueryPerformanceCounter()。分辨率通常优于1微秒。

假设您正在使用UNIX(fx Linux或iOS),行为是正确的。 time.clock返回进程消耗的CPU时间,睡眠时不消耗任何CPU时间。

当然,UNIX和Windows之间的区别使得此函数无用,除非您检测到哪些行为生效并采取相应的行动。

答案 1 :(得分:1)

根据这种模式,这可能会成功。 time.clock()将为您提供处理时间和time.time() - now_time()将给出每次传递的秒数.sleep(1)

import time
now = time.clock()
now_time = time.time()
while now + 5 > time.clock():
    print time.time() - now_time + time.clock()
    time.sleep(1)
    print "Woke up"