打印程序执行时间

来源:互联网 发布:女朋友bra体验 知乎 编辑:程序博客网 时间:2024/05/17 04:40

 

     在查程序执行顺序的过程中,打印程序执行点的时间可以清楚准确的得到程序执行顺序。在linux环境下有很多种得到程序执行时间的方法,用到方法较多不一一列举

在这里只记录常用到的几种:

   #include <time.h>

   包含这个头文件后可以使用  time_t  类型表示的就是时间,可以调用 time_t  time( time_t *t) 函数得到时间。

   如: time_t the_time;

            the_time = time((time_t *)0);

            printf("%ld",the_time);                                         输出格式: 1179XXXXXXX的长整型数字

    如果想要的到时间如时,分,秒则要转化一下:

            struct tm *tm_ptr;                 -----------------  定义年月日时分秒的结构体

            tm_ptr = gmtime(the_time);   -------------------- 转化一下

            printf("time:%02d:%02d:%02d",tm_ptr->hour,tm_ptr->min,tm_ptr->sec);

     如果想要精确到微秒打印时间,则要用到

    #include <sys/time.h>

          struct  timeval tv;

          gettimeofday(&tv,NULL);  

          printf("time:%ld:%ld",tv.tv_sec,tv.tv_usec); ------------------------->打印秒 微秒

     特别是在多线程的环境下,因为与时间相关,所以如果没有加同步机制的话程序的执行先后很难准确的说清。而这一类问题出现的bug很难定位,因为每一次执行的结果可能

不一样。在程序中精确的打印出时间可以有效的知道程序的执行先后,从而准确定位出在有bug的情况下执行顺序并非预期而做出调整。

  

 

     

    

 

    

  

 

 

原创粉丝点击