Windows上的time.clock()是否有替代的精确计时器?

时间:2013-03-15 16:11:17

标签: python windows time python-2.7 virtual-machine

在某些虚拟机平台上运行Windows,Python的time.clock()函数不准确 我使用以下测试脚本在几个不同的平台上进行了一些测试:

import datetime
import time
import timeit

startClock = time.clock()
startTime = time.time()

while (True):
    currentClock = time.clock()
    currentTime = time.time()

    clockDiff = currentClock - startClock
    timeDiff = currentTime - startTime

    print (datetime.datetime.now())
    print ('time.clock() Seconds: %s' % str(clockDiff))
    print ('time.time() Seconds:  %s' % str(timeDiff))
    print ('Diff:              %s' % str(clockDiff - timeDiff))
    print ''

    time.sleep(5)

根据我运行的虚拟机平台,clockDiff和timeDiff之间的差异变化很大。我尝试了Parallels Desktop 8 for Mac,VMWare Fusion 5和Hyper-V。

this related question。问题在于管理程序如何处理低级QueryPerformanceCounter函数。

我希望我的计时准确无误,无论可能运行什么管理程序。我可以使用time.time(),虽然它没有我从time.clock()得到的精度。

time.clock()是否有另一个定时器给我相同的精度?我在Windows上运行Python 2.7。

谢谢!

1 个答案:

答案 0 :(得分:3)

timeit提供了default_timer,它可以在当前系统上返回最准确的便携式计时机制。