linux下计算程序运行时间

这里介绍一下我在项目测试中用到的两种方法

1 clock()

1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <time.h>
4
5  int main()
6 {
7    clock_t begin, end;
8    double cost;
9    begin = clock();
10    /* 程序代码 */
11    end = clock();
12    cost = (double)(end - begin) / CLOCKS_PER_SEC;
13    printf("%lf seconds\n", cost);
14   
15    return 0;
16 }

这个函数返回开启进程和调用clock()之间的的CPU时钟计时单元(clock tick)数,在MSDN中称之为挂钟时间(wal-clock),每过千分之一秒(1毫秒),调用clock()函数返回的值就加1。

两个缺点:第一是精度,只能精确到1ms,低于1ms的程序全部输出0ms,因为WinNT的时间精度最小是1ms;第二是准确度,printf()的速度太快了,基本上和clock()的速度一样,所以误差很大
2 gettimeofday()

1 #include < stdio.h >
2 #include < stdlib.h >
3 #include < sys / time.h >
4
5 /* struct timeval说明
6 strut timeval { . {! K( J, c4 ?' }$ _+ L& B0 P
7 long tv_sec; /* 秒数 */ ( r * A) \ " h& k( j. a2 F4 R
8 long tv_usec; /* 微秒数 */
9 ( G# ~ 7 l7 i; I7 t % ~ ( `}; */
10 int main()
11 {
12    struct timeval tpstart,tpend;
13    float timeuse;
14    gettimeofday( & tpstart,NULL);
15    /* 程序代码 */
16    gettimeofday( & tpend,NULL);
17    timeuse = 1000000 * (tpend.tv_sec - tpstart.tv_sec) + tpend.tv_usec - tpstart.tv_usec;
18    timeuse /= 1000000 ;
19    printf( " Used Time:%f\n " ,timeuse);
20    return 0 ;
21 }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值