C++程序记时

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。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容