3

在某些虚拟机平台上的 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。

请参阅此相关问题。问题在于管理程序如何处理低级QueryPerformanceCounter函数。

我希望我的时间准确,不管这可能在什么管理程序上运行。我可以只使用 time.time(),尽管它没有我从 time.clock() 获得的精度。

是否有 time.clock() 的替代计时器可以提供相同的精度?我在 Windows 上运行 Python 2.7。

谢谢!

4

1 回答 1

3

timeit提供了default_timer据称返回当前系统上最准确的便携式计时机制。

于 2013-03-15T16:12:09.223 回答