2011-11-11 90 views

回答

3

獲得準確時間測量的方法是通過性能計數器。

在Windows中,你可以使用QueryPerformanceCounter()QueryPerformanceFrequency()

http://msdn.microsoft.com/en-us/library/windows/desktop/ms644904%28v=vs.85%29.aspx

編輯:下面是衡量1000000000從0總結所需要的時間一個簡單的例子:

LARGE_INTEGER frequency; 
LARGE_INTEGER start; 
LARGE_INTEGER end; 

// Get the frequency 
QueryPerformanceFrequency(&frequency); 

// Start timer 
QueryPerformanceCounter(&start); 

// Do some work 
__int64 sum = 0; 
int c; 
for (c = 0; c < 1000000000; c++){ 
    sum += c; 
} 
printf("sum = %lld\n",sum); 


// End timer 
QueryPerformanceCounter(&end); 

// Print Difference 
double duration = (double)(end.QuadPart - start.QuadPart)/frequency.QuadPart; 
printf("Seconds = %f\n",duration); 

輸出:

sum = 499999999500000000 
Seconds = 0.659352 
+0

體面示例代碼在這裏:http://www.decompile.com/cpp/faq/windows_timer_api.htm – Joe

相關問題