美文网首页
C++程序记时

C++程序记时

作者: 大兔子先生 | 来源:发表于2017-03-27 15:39 被阅读0次

    C++程序记时可能有5种以上的方法,其中有些是Win专属的,我们不作研究。这里讨论Linux下的几种记时方法,他们精度各不相同。

    (1)gettimeofday()

    这个函数记时精度较高,是微秒级(1/1000000s)。其用法为

    #include <sys/time.h>
    ...
    timeval t1, t2;
    gettimeofday(&t1,NULL);
    //待记时的代码区间
      ...
    
    gettimeofday(&t2,NULL);
    cout<<(t2.tv_sec-t1.tv_sec)*1000000+t2.tv_usec-t1.tv_usec<<endl;
    

    其中,头文件为“sys/time.h”,timeval是一个结构体,包含记录秒和微秒的两个成员

    struct  timeval{
        long  tv_sec;    //秒  
        long  tv_usec;  //微妙
    };
    

    gettimeofday()函数的原型为

    int gettimeofday(struct timeval*tv, struct timezone*tz )
    

    其中timezone记录时区信息,一般不会用到,直接置为NULL即可。函数成功则返回0,失败-1。

    相关文章

      网友评论

          本文标题:C++程序记时

          本文链接:https://www.haomeiwen.com/subject/hberottx.html