关于计算程序运行时间的方法汇总

关于计算程序运行时间的方法汇总

1、GetTickCount()函数

1.1 函数介绍

  该函数是windows里面常用来计算程序运行时间的函数;

1.2 使用方法:    

  DWORD dwStart = GetTickCount();
  //这里运行你的程序代码
  DWORD dwEnd = GetTickCount();
  则(dwEnd-dwStart)就是你的程序运行时间, 以毫秒为单位。这个函数只精确到55ms,1个tick就是55ms。

1.3 代码示例

复制代码
 1 #include <iostream>
 2 #include <windows.h>
 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!"<<endl;   //your code
11    end = GetTickCount()-start;
12    cout<<end<<endl;
13    return 0;
14 }
复制代码

 

2、timeGetTime()函数

2.1 函数介绍
     timeGetTime()和上一中方法中的GetTickCount()函数类似,但是精度更高。

2.2 使用说明
  DWORD dwStart = timeGetTime();

   //这里运行你的程序代码

  DWORD dwEnd = timeGetTime();

  则(dwEnd-dwStart)就是你的程序运行时间, 以毫秒为单位。 虽然返回的值单位应该是ms,但传说精度只有10ms。

2.3 代码示例

复制代码
 1 #include <iostream>
 2 #include <windows.h>
 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!"<<endl;
13   end = timeGetTime()-start;
14   cout<<end<<endl;
15   return 0;
16 }
复制代码

 

3、clock()函数

3.1 函数介绍
      用clock()函数,得到系统启动以后的毫秒级时间,然后除以CLOCKS_PER_SEC,就可以换成“秒”,标准c函数。
      clock_t clock ( void );

3.2 使用说明

      #include <time.h>
      clock_t t = clock();
      long sec = t / CLOCKS_PER_SEC;
      他是记录时钟周期的,实现看来不会很精确,需要试验验证。

3.3 代码示例

复制代码
 1 #include<iostream>
 2 #include<ctime> //<time.h>
 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:   "<<duration<<endl;
15 }
复制代码

5、Ctime类

  CTime MFC类,好像就是把time.h封了个类,没扩展
  CTime t = GetCurrentTime();

或者

  CTime curTime(t1);
  WORD ms = t1.wMilliseconds;

6、GetLocalTime()函数 GetSystemTime()函数

6.1、函数介绍

     WindowsAPI,需要定义SYTEMTIME变量

     SYSTEMTIME 结构包含毫秒信息
     typedef struct _SYSTEMTIME {
           WORD wYear;
           WORD wMonth;
           WORD wDayOfWeek;
           WORD wDay;
           WORD wHour;
       WORD wMinute;
       WORD wSecond;
       WORD wMilliseconds;
    } SYSTEMTIME, *PSYSTEMTIME;

6.2、使用说明

  SYSTEMTIME t1;
  GetSystemTime(&t1)

或者

     SYSTEMTIME sysTm;
     ::GetLocalTime(&sysTm);

7. _strtime()函数

7.1、函数介绍
  在time.h中的_strtime() //只能在windows中用
7.2 使用说明

   char t[11];
  _strtime(t);
  puts(t);

 
 
分类:  C++

你可能感兴趣的:(时间)