转自:
1
这个是windows里面常用来计算程序运行时间的函数;DWORD dwStart = GetTickCount();//这里运行你的程序代码DWORD dwEnd = GetTickCount();则(dwEnd-dwStart)就是你的程序运行时间, 以毫秒为单位这个函数只精确到55ms,1个tick就是55ms。1 #include2 #include 3 using namespace std; 4 int main(int argc, char* argv[]) 5 { 6 DWORD start, end; 7 8 start = GetTickCount(); 9 for(int i=0;i<1000;i++)10 cout<<"you are a good child!"<
2
timeGetTime()基本等于GetTickCount(),但是精度更高1 DWORD dwStart = timeGetTime();2 3 //这里运行你的程序代码4 5 DWORD dwEnd = timeGetTime();
则(dwEnd-dwStart)就是你的程序运行时间, 以毫秒为单位
虽然返回的值单位应该是ms,但传说精度只有10ms。1 #include2 #include 3 #pragma comment(lib,"winmm.lib") 4 5 using namespace std; 6 int main(int argc, char* argv[]) 7 { 8 DWORD start, end; 9 10 start = timeGetTime();11 for(int i=0;i<100;i++)12 cout<<"you are a good child!"<
1 #include2 #include // 3 using namespace std; 4 int main() 5 { 6 time_t begin,end; 7 8 double duration; 9 begin=clock(); 10 //这里加上你的代码 11 end=clock();12 13 duration=double(end-begin)/CLOCKS_PER_SEC;14 cout<<"runtime: "< <
1 typedef struct _SYSTEMTIME { 2 WORD wYear; 3 WORD wMonth; 4 WORD wDayOfWeek; 5 WORD wDay; 6 WORD wHour; 7 WORD wMinute; 8 WORD wSecond; 9 WORD wMilliseconds;10 } SYSTEMTIME, *PSYSTEMTIME;11 12 SYSTEMTIME t1;13 GetSystemTime(&t1)14 CTime curTime(t1);15 WORD ms = t1.wMilliseconds;16 17 SYSTEMTIME sysTm;18 ::GetLocalTime(&sysTm);
1 #include2 3 using namespace std; 4 5 void GetClockNumber (long high, long low); 6 void GetRunTime(); 7 8 int main() 9 { 10 11 long HighStart,LowStart,HighEnd,LowEnd;12 long numhigh,numlow;13 //获取代码运行开始时cpu内部计数器的值14 __asm 15 {16 RDTSC17 mov HighStart, edx18 mov LowStart, eax19 }20 for(int i= 0; i<100000; i++ )21 {22 for(int i= 0; i<100000; i++ )23 {24 25 }26 27 }28 //获取代码结束时cpu内部计数器的值,并减去初值29 __asm30 {31 RDTSC32 mov HighEnd, edx33 Mov LowEnd, eax34 ;获取两次计数器值得差35 sub eax, LowStart36 cmp eax, 0 ; 如果低32的差为负则求返,因为第二次取得永远比第一次的大37 jg L138 neg eax39 jmp L240 L1: mov numlow, eax41 L2: sbb edx, HighStart42 mov numhigh, edx43 44 }45 //把两个计数器值之差放在一个64位的整形变量中46 //先把高32位左移32位放在64的整形变量中,然后再加上低32位47 __int64 timer =(numhigh<<32) + numlow;48 //输出代码段运行的时钟周期数49 //以频率1.1Gcpu为例,如果换计算机把其中的1.1改乘其它即可,因为相信大家的cpu都应该在1G以上 ^_^50 cout<< (double) (timer /1.1/1000000000) << endl;51 return 0;52 }