为了能到远方,脚下的每一步都不能少|

南方与南

园龄:4年2个月粉丝:5关注:3

📂C/C++
2021-03-14 18:54阅读: 3808评论: 0推荐: 1

C语言: 计算程序运行时间

使用Linux系统调用

  • 该调用获取从1970年1月1号到现在经过的时间和时区(UTC时间), 可以参考Linux手册(精度最高)

    #include <stdio.h>
    #include <sys/time.h>
    int main(int argc, char *argv[]){
    struct timeval start_time, end_time;
    double timeuse;
    gettimeofday(&start_time, NULL); // 开始时间
    /* 中间这里写要测试的函数 */
    printf("测试时间\n");
    gettimeofday(&end_time, NULL); // 结束时间
    timeuse = (start_time.tv_sec - end_time.tv_sec) +
    (double)(start_time.tv_usec - end_time.tv_usec) / 1000000.0;
    printf("%lf\n", timeuse);
    return 0;
    }
  • gettimeofday() 时区一般不用了, 直接传入NULL就可以了

使用C库函数

  • C库函数,所需头文件ctime/time.h,该函数可以跨平台使用.

    • 返回类型为clock_t 实际为long.
    • clock() 函数,返回从 开启这个程序进程 到 程序中调用clock()函数 时之间的CPU时钟计时单元(clock tick)数(挂钟时间),返回单位是毫秒
    • 可以用常量CLOCKS_PER_SEC, 这个常量表示每一秒(per second)有多少个时钟计时单元
    #include <stdio.h>
    #include <time.h>
    int main(int argc, char **argv) {
    clock_t start_time, end_time;
    start_time = clock(); // 开始时间
    /* 这里写要测试的函数 */
    end_time = clock(); // 结束时间
    /* 计算得出程序运行时间, 并将其输出到屏幕 */
    printf("%lf ", (double)(end_time - start_time) / CLOCKS_PER_SEC);
    return 0;
    }
  • 精度比较低的方法(秒级)(不推荐使用):

    time_t start,stop;
    start = time(NULL);
    /* 这里写要测试的函数 */
    stop = time(NULL);

本文作者:南方与南

本文链接:https://www.cnblogs.com/jingpengblog/p/14533624.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   南方与南  阅读(3808)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起