queryperformancefrequency() - 基本介紹
型別:win32api
原型:bool queryperformancefrequency(large_integer *lpfrequency);
作用:返回硬體支援的高精度計數器的頻率。
返回值:非零,硬體支援高精度計數器;零,硬體不支援,讀取失敗。
queryperformancefrequency() - 技術特點
供win9x使用的高精度定時器:queryperformancefrequency()和queryperformancecounter(),要求計算機從硬體上支援高精度定時器。需包含windows.h標頭檔案。
函式的原形是:
bool queryperformancefrequency(large_integer *lpfrequency);
bool queryperformancecounter (large_integer *lpcount);
資料型別largeinteger既可以是乙個作為8位元組長的整數,也可以是作為兩個4位元組長的整數的聯合結構,其具體用法根據編譯器是否支援64位而定。該型別的定義如下:
typeef union _ large_integer
struct
dword lowpart;
long highpart;
longlong quadpart;
} large_integer;
在定時前應該先呼叫queryperformancefrequency()函式獲得機器內部計時器的時鐘頻率。接著在需要嚴格計時的事件發生前和發生之後分別呼叫queryperformancecounter(),利用兩次獲得的計數之差和時鐘頻率,就可以計算出事件經歷的精確時間。
#include
#include
void main()
large_integer nfreq;
large_integer nbegintime;
large_integer nendtime;
double time;
queryperformancefrequency(&nfreq);
queryperformancecounter(&nbegintime);
sleep(1000);
queryperformancecounter(&nendtime);
time=(double)(nendtime.quadpart-nbegintime.quadpart)/(double)nfreq.quadpart;
printf("%f\n",time);
sleep(1000);
system("pause");
結果為0.999982
1.000088
1.000200
等,所以sleep的精度還是比較低的。
C 計算程式執行時間
通過系統函式system.datetime.now獲取執行前的當前時間和執行後的當前時間,然後通過datetime型別本身自帶的subtract方法 從此例項中減去指定時間或持續時間,datetime型別或timespan型別引數 用執行後時間減去執行前時間,獲得執行一段程式所需要的時間。具體 如下...
c 計算程式執行時間
c 中如何記錄程式執行時間 一 clock 計時函式 clock 是c c 中的計時函式,而與其相關的資料型別是clock t。在msdn中,查得對clock函式定義如下 clock t clock void 簡單而言,就是該程式從啟動到函式呼叫占用cpu的時間。這個函式返回從 開啟這個程式程序 到...
C語言如何 計算程式執行時間
c c 中的計時函式是clock 而與其相關的資料型別是 clock t 在msdn中,查得對clock函式定義如下 clock t clock void 這個函式返回從 開啟這個程式程序 到 程式中呼叫clock 函式 時之間的cpu時鐘計時單元 clock tick 數,在msdn中稱之為掛鐘時...