C語言 計算程式執行時間(簡單粗暴)

2021-09-29 01:16:59 字數 1423 閱讀 8655

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中稱之為掛鐘時...