Re: [問題]請問Linux下的計時器

看板C_and_CPP (C/C++)作者 (蓋立安800)時間18年前 (2006/04/12 21:12), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
謝謝回應 我寫了一個小副程 有需要的可以拿去用 ======================================================================== #include <sys/time.h> timeval tv_Start,tv_End; double StopWatch(bool b_Stop) { //usage : StopWatch(0) -> Set up the stopwatch // StopWatch(1) -> Stop the stopwatch //return : StopWatch(0) return 0.0; // StopWatch(1) return time interval in sec. if(!b_Stop) { gettimeofday(&tv_Start,NULL); return 0.0; } else { gettimeofday(&tv_End,NULL); return (1000000*(tv_End.tv_sec-tv_Start.tv_sec)+ tv_End.tv_usec-tv_Start.tv_usec)/1000000.0; } } ======================================================================== ※ 引述《littleshan (我要加入劍道社!)》之銘言: : 這個方法我也常用 : 不過我會建議 gettimeofday : 最主要是因為 rdtsc 需要先知道 cpu clock 才能轉成 ms : 另外就是如果 cpu 有省電功能 : 通常 clock 是不固定的 : 所以結果會有誤差 : 另外在 smp 系統上 : 兩顆 cpu 的 timestamp 可能不同步 : (還有 你竟然直接寫machine code 真帥氣 XD) : ※ 引述《ccbruce (萬年好人)》之銘言: : : try RDTSC on Intel family... : : The resolution is in n-sec level. : : __inline__ unsigned long long int rdtsc() : : { : : unsigned long long int x; : : __asm__ volatile (".byte 0x0f, 0x31" : "=A" (x)); : : return x; : : } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.155.35
文章代碼(AID): #14FFoj-6 (C_and_CPP)
文章代碼(AID): #14FFoj-6 (C_and_CPP)