2011-02-23 14:51:19
其實也是WINDOWS下的通用辦法啦,只不過我用PYTHON表達。
用win32api.GetSystemTime()不是太精確,值15毫秒才變一下,最好用time.clock(),這個能到毫秒級,最精確的辦法是用QueryPerformanceFrequency()函數和QueryPerformanceCounter()函數。用CPU周期計時,很精確。win32api里沒定義,調用辦法如下:
import time,ctypes
freq = ctypes.c_longlong(0)
ctypes.windll.kernel32.QueryPerformanceFrequency(ctypes.byref(freq))
f=freq.value
print f
ctypes.windll.kernel32.QueryPerformanceCounter(ctypes.byref(freq))
n1=freq.value
print n1
time.sleep(1)
ctypes.windll.kernel32.QueryPerformanceCounter(ctypes.byref(freq))
n2=freq.value
print n2
print (n2-n1)/(f+0.)