【发布时间】:2013-03-15 16:11:17
【问题描述】:
在某些虚拟机平台的 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。
谢谢!
【问题讨论】:
标签: python windows time python-2.7 virtual-machine