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。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容