일부 가상 컴퓨터 플랫폼에서 Windows를 실행하면 Python의 time.clock() 함수가 정확하지 않습니다.
내가 다음 테스트 스크립트와 몇 가지 다른 플랫폼에 대한 몇 가지 테스트를했다 : 나는이 실행 된 가상 머신 플랫폼에 따라Windows에서 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(), 시간에서 얻을 수있는 정밀도는 없습니다 .clock().
동일한 정밀도를 제공하는 time.clock()에 대한 대체 타이머가 있습니까? Windows에서 Python 2.7을 실행하고 있습니다.
감사합니다.
Windows에서'timeit.default_timer()'는'time.clock()'을 사용합니다. 'timeit.default_timer()'가 가장 정확한 타이머가 아닌 가장 _precise_ 타이머를 얻기위한 것임을 기반으로합니다. – AndyGeek