1. 程式人生 > >C語言 計算/測程式執行時間(精確到微秒)

C語言 計算/測程式執行時間(精確到微秒)

 平臺: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;	//結束時間