C語言 計算/測程式執行時間(精確到微秒)
阿新 • • 發佈:2018-12-31
平臺:VS2010
#include<stdio.h> #include <Windows.h> int main() { int a[10002]; int i = 0; double run_time; LARGE_INTEGER time_start; //開始時間 LARGE_INTEGER time_over; //結束時間 double dqFreq; //計時器頻率 LARGE_INTEGER f; //計時器頻率 QueryPerformanceFrequency(&f); dqFreq=(double)f.QuadPart; QueryPerformanceCounter(&time_start); //計時開始 for( i = 1; i <= 10000; i++)a[i]=i; //要計時的程式 QueryPerformanceCounter(&time_over); //計時結束 run_time=1000000*(time_over.QuadPart-time_start.QuadPart)/dqFreq; //乘以1000000把單位由秒化為微秒,精度為1000 000/(cpu主頻)微秒 printf("\nrun_time:%fus\n",run_time); return 0; }
原文連結:https://blog.csdn.net/Bamboo_shui/article/details/78757281
由於原文中程式碼有瑕疵無法執行,故進行除錯之後執行成功。修改部分如下:
//w小寫變大寫 #include <windows.h> ==> #include <Windows.h> //刪除前端下劃線 _LARGE_INTEGER time_start; //開始時間 _LARGE_INTEGER time_over; //結束時間 ==> LARGE_INTEGER time_start; //開始時間 LARGE_INTEGER time_over; //結束時間