2013年4月2日 星期二

[Win32] 高精確度計算程式執行時間 (QueryPerformanceCounter)

舉例來說,我們想來計算一個函式(function)執行所花的時間

LARGE_INTEGER g_lStartTime
LARGE_INTEGER g_lEndTime;
LARGE_INTEGER g_lFreq;

void sample()

{

 //取得目前 CPU frequency

 QueryPerformanceFrequency( &g_lFreq);

 // 取得目前開始時間

 QueryPerformanceCounter( &g_lStartTime);

//你的程式

 for ( i = 0 ; i < 5000 ; i++)

       i = i+1;

//取得執行後的時間

QueryPerformanceCounter( &g_lEndTime );

//計算一共花了多少時間

double dElapsedTime = (g_lEndTime.QuadPart - g_lStartTime.QuadPart) * 1000.0 / g_lFreq.QuadPart;

 //列印出來

printf( "Elapsed time = %lf millisecond\n", dElapsedTime );

}

沒有留言:

張貼留言