zoukankan      html  css  js  c++  java
  • 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("测试时间
      ");
      
          
          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
      ", 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);
      
  • 相关阅读:
    DBA操作常用命令
    DBA常用SQL
    安装下rlwrap
    destoon复制新模块的方法
    生成二维码
    布隆过滤
    Golang中的三个点
    Golang: 数组和切片
    Fabric的权限管理:Attribute-Based Access Control
    Node.js web发布到AWS ubuntu 之后,关闭Putty,Node 项目也随之关闭的解决办法
  • 原文地址:https://www.cnblogs.com/ieeqc/p/14533624.html
Copyright © 2011-2022 走看看