1. 程式人生 > >計算程序執行的時間

計算程序執行的時間

int sun 函數 標準c函數 周期 應該 post 計算 order

1.這個是windows裏面經常使用來計算程序執行時間的函數。
DWORD dwStart = GetTickCount();
//這裏執行你的程序代碼
DWORD dwEnd = GetTickCount();
則(dwEnd-dwStart)就是你的程序執行時間, 以毫秒為單位

這個函數僅僅精確到55ms,1個tick就是55ms。


#include <iostream>
#include <windows.h>
using namespace std;
int main(int argc, char* argv[])
{
DWORD start, end;

start = GetTickCount();
for(int i=0;i<1000;i++)
cout<<"you are a good child!"<<endl; //your code
end = GetTickCount()-start;
cout<<end<<endl;
return 0;
}

2
timeGetTime()基本等於GetTickCount(),可是精度更高
DWORD dwStart = timeGetTime();

//這裏執行你的程序代碼

DWORD dwEnd = timeGetTime();

則(dwEnd-dwStart)就是你的程序執行時間, 以毫秒為單位
盡管返回的值單位應該是ms,但傳說精度僅僅有10ms。

#include <iostream>
#include <windows.h>
#pragma comment(lib,"winmm.lib")

using namespace std;
int main(int argc, char* argv[])
{
DWORD start, end;

start = timeGetTime();
for(int i=0;i<100;i++)
cout<<"you are a good child!"<<endl;
end = timeGetTime()-start;
cout<<end<<endl;
return 0;
}

3
用clock()函數。得到系統啟動以後的毫秒級時間,然後除以CLOCKS_PER_SEC,就能夠換成“秒”。標準c函數。
clock_t clock ( void );

#include <time.h>
clock_t t = clock();
long sec = t / CLOCKS_PER_SEC;
他是記錄時鐘周期的,實現看來不會非常精確,須要試驗驗證;

#include<iostream>
#include<ctime> //<time.h>
using namespace std;
int main()
{
time_t begin,end;

double duration;
begin=clock();
//這裏加上你的代碼
end=clock();

duration=double(end-begin)/CLOCKS_PER_SEC;
cout<<"runtime: "<<duration<<endl;
}

計算程序執行的時間