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;
}