linux下统计程序/函数运行时间

一. 使用time 命令

例如编译一个hello.c文件

#gcc hello.c -o hello

生成了hello可执行文件,此时统计该程序的运行时间便可以使用如下命令

#time ./hello 
运行结果:

real    0m2.913s
user    0m0.012s
sys     0m0.508s


二. 使用clock()函数统计

#include<stdio.h>
#include <time.h>               /*要包含的头文件*/

int main(int argc, char *argv[])
{
    /* Init  */
    clock_t start, end;
    start = clock();           /*记录起始时间*/

    printf("time calc test\n");
/*
    *
    *
    * 函数进行的一些列操作
    *
    * */

    /* Final Status */
    end = clock();           /*记录结束时间*/
    {
        double seconds  =(double)(end - start)/CLOCKS_PER_SEC;
        fprintf(stderr, "Use time is: %.8f\n", seconds);
    }
    return 0;
}

运行结果:

# time ./helloTest
time calc test
Use time is 0.00003100

real    0m0.003s
user    0m0.000s
sys     0m0.000s

CLOCKS_PER_SEC用于将clock()函数的结果转化为以秒为单位的量


三. 优缺点对比

time命令在不修改代码的情况下记录程序运行时间,但是,从上面对比可看出time命令统计的结果比较粗糙。 
另外,time命令,统计的结果包涵程序加载和退出的时间。因此,若想得出函数运行时间较为准确的结果,建议使用clock()函数。 
若想了解整个项目中各个函数的运行时间,以期获得性能提升,建议使用——开源工具

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值