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);
      
  • 相关阅读:
    c++STL容器之deque容器
    c++STL容器之vector容器
    c++STL容器之string容器
    c++之STL基本认识
    c++之类模板案例
    c++之类模板和友元
    c++之类模板分文件编写
    c++之类模板成员函数的类外实现
    c++类模板与继承
    c++之类模板对象作函数参数
  • 原文地址:https://www.cnblogs.com/ieeqc/p/14533624.html
Copyright © 2011-2022 走看看