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