C++程序记时

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

(1)gettimeofday()

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

#include 
...
timeval t1, t2;
gettimeofday(&t1,NULL);
//待记时的代码区间
  ...

gettimeofday(&t2,NULL);
cout<<(t2.tv_sec-t1.tv_sec)*1000000+t2.tv_usec-t1.tv_usec<

其中,头文件为“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++程序记时)