灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:3838回复:1

[C++技术]c/c++测试程序运行时间

楼主#
更多 发布于:2013-07-24 09:06
 
算法分析中需要对各种算法进行性能测试,下面介绍两种通用的测试方法,由于只用到标准c语言函数,所以在各种平台和编译器下都能使用。
方法1:
clock()函数
开始计时:start = clock()
结束计时:end = clock()
start和end都是clock_t类型
结果(秒):time = (double)(end - start) /  CLOCKS_PER_SEC

 
[code ]#include <iostream>  
#include <cstdio>  
#include <ctime>  
#include <algorithm>  
#include <functional>   usingnamespacestd;  
   inlineboolcmp(inta, intb)  {  
    returna > b;  }    
constintn = 100000000;  inta[n];  intmain()  {  
    clock_tstart, stop;<SPAN style="WHITE-SPACE: pre">                 </SPAN>//定义clock_t类型的start和end  
    for(inti = 0; i < n; ++i)  
        a = i;  
    start = clock();  
    //sort(a, a + n, cmp);                  //开始计时  
    sort(a, a + n, greater<int>());<SPAN style="WHITE-SPACE: pre">                </SPAN>//中间是需要计时的代码  
    stop = clock();                     //结束计时  
    printf("%f\n", (double)(stop - start) / CLOCKS_PER_SEC);  
    return0;  }    
#include <iostream> #include <cstdio>
#include <ctime> #include <algorithm>
#include <functional> usingnamespacestd;  
inlineboolcmp(inta, intb) {  returna > b; }  
constintn = 100000000; inta[n]; intmain() {
 clock_tstart, stop;     //定义clock_t类型的start和end
 for(inti = 0; i < n; ++i)   a = i;
 start = clock();
 //sort(a, a + n, cmp);     //开始计时
 sort(a, a + n, greater<int>());    //中间是需要计时的代码
 stop = clock();      //结束计时
 printf("%f\n", (double)(stop - start) / CLOCKS_PER_SEC);  return0;
}[/code]

这段代码对排序中使用自己定义的函数和函数对象的速度进行测试,平均情况下还是函数对象的版本比较快。(当然这种测试不够严谨,仅仅是演示一下计时的方法)
 

方法2:和上一种方法差不多,只是用时间函数。
time_t start, end;
start = time(NULL);
end = time(NULL);
time = (double)(end - start);

喜欢0 评分0
天天向上
新手上路
新手上路
  • 注册日期2013-11-23
  • 发帖数13
  • QQ373526679
  • 火币54枚
  • 粉丝0
  • 关注0
  • 最爱沙发
沙发#
发布于:2013-11-24 21:25
Do something today that your future self will thank you for.
回复(0) 喜欢(0)     评分
游客

返回顶部