clock_gettime的使用,計時比clock()精確


函數"clock_gettime"是基於Linux C語言的時間函數,可以用於計算時間,有秒和納秒兩種精度。

函數原型:

int clock_gettime(clockid_t clk_id, struct timespec *tp);

其中,cld_id類型四種:   

a、CLOCK_REALTIME:系統實時時間,隨系統實時時間改變而改變
b、CLOCK_MONOTONIC,從系統啟動這一刻起開始計時,不受系統時間被用戶改變的影響
c、CLOCK_PROCESS_CPUTIME_ID,本進程到當前代碼系統CPU花費的時間
d、CLOCK_THREAD_CPUTIME_ID,本線程到當前代碼系統CPU花費的時間

本文默認采用CLOCK_REALTIME,即可實現並行程序的准確計時。

其中,timespec結構包括:

struct timespec {
time_t tv_sec; /* 秒*/
long tv_nsec; /* 納秒*/
};
--------------------------------------------------------------------------------------------------------------
例如:計算時間差
#include <time.h>
 
struct timespec time1 = {0, 0};
struct timespec time2 = {0, 0};
 
clock_gettime(CLOCK_REALTIME, &time1);
。。。
。。。
clock_gettime(CLOCK_REALTIME, &time2);
cout << "time passed is: " << (time2.tv_sec - time1.tv_sec)*1000 + (time2.tv_nsec - time1.tv_nsec)/1000000 << "ms" << endl;
 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM