c++测试程序运行时间的

来源:互联网 发布:linux创建文本文件命令 编辑:程序博客网 时间:2024/06/08 14:42

高精度方法:

有很多时候为了测试效率问题,我们需要对时间的精确掌控,mfc给我们封装的时间函数就满足不了我们的需求了。

这时候需要使用下面两个函数

       BOOL QueryPerformanceFrequency(LARGE_INTEGER *lpFrequency);   
  BOOL QueryPerformanceCounter (LARGE_INTEGER *lpCount);

第一个函数:返回硬件支持的高精度计数器的频率。

第二个函数:得到高精度计时器的值

 

其使用过程也是相当的简单:

直接看源代码:

#include <iostream>  #include <windows.h>  using namespace std;    int main()  {      LARGE_INTEGER Frequency;//计数器频率      LARGE_INTEGER start_PerformanceCount;//起始计数器      LARGE_INTEGER end_PerformanceCount;//结束计数器      double run_time; //运行时间      QueryPerformanceFrequency(&Frequency);             for (int i = 0 ; i < 10 ; ++i )      {                    QueryPerformanceCounter(&start_PerformanceCount);                     //运行测试的代码          Sleep(10);                    QueryPerformanceCounter(&end_PerformanceCount);           run_time = ( end_PerformanceCount.QuadPart - start_PerformanceCount.QuadPart ) / (double)Frequency.QuadPart;          cout<<run_time<<endl;      }            return 0;  

另一种
#include <ctime> //计时用的头文件#include <iostream>using namespace std;int main() {    time_t start,end,time; /*注意计时所用的变量名称*/  /*程序开始执行,开始计时*/    start=clock();  //获得开始的时间,单位为毫秒/*程序执行过程……*/    for(int i=0;i<=100;i++) cout << i << ' ';   cout << endl;   /*程序结束执行,结束计时*/   end=clock();     //获得结束时间time=end-start;//这里的时间是计算机内部时间  cout<<"endTime - beginTime = Time"<<endl;cout << end <<" - "<<start<<" = "<<time<< endl;    system("pause");    return 0;} 


0 0
原创粉丝点击