#include
large_integer m_freq,m_timestart,m_timenow;
queryperformancefrequency(&m_freq);
queryperformancecounter(&m_timestart);
//double time = (double)m_timestart.quadpart / m_freq.quadpart;
>settext(qstring::number(time));
sleep(1000);
queryperformancecounter(&m_timenow);
double elapsedtime = (double)(m_timenow.quadpart - m_timestart.quadpart) / m_freq.quadpart;
ui.elapsedtimelabel->settext(qstring::number(elapsedtime));
large_integer為64位整型數,結構如下
typedef union _large_integer
struct
dword lowpart ;// 4位元組整型數
long highpart;// 4位元組整型數
longlong quadpart ;// 8位元組整型數
}large_integer ;
queryperformancecounter()返回高精度計數器的值,精確到微秒;
queryperformancefrequency()計數頻率,每秒滴答次數;
elapsedtime=(nstopcounter.quadpart-nstartcounter.quadpart)/frequency.quadpart //計算執行時間(秒)
C 廣播TS流精確計時傳送
廣播傳輸相關的專案,需求是udp傳送ts到ip asi閘道器,閘道器經過asi輸出到激勵器,再由激勵器通過射頻天線輸出,接收端為終端機頂盒。因為以前沒有怎麼接觸過廣播相關的東西,一開始認為用c 寫個udp的程式將ts發出即可。ts的規範是每188個位元組為乙個packet,我用固定位元速率計算出10...
Linux下精確計時
1.低精度計時 1.1sleep 和 usleep sleep int x 系統呼叫,讓程序等待x秒鐘。其精度以秒為單位的。usleep int x 系統呼叫,讓程序等待x 納秒,但實際其精度一般是10ms,再低的達不到。這兩個函式的優點是簡單,缺點程序被阻塞。1.2alarm鬧鐘 alarm也稱為...
C Stopwatch實現精確計時
c 中的stopwatch類位於diagnostics空間下,其功能主要是實現對程式執行的精確計時,它的用法比較簡單,精確度也很高。比如當我們寫爬蟲程式時可以用來計算爬蟲爬取的時間 可以用來比較一些語法的優劣,比如資料庫的查詢,第二次會比第一次慢很多,這是由於查詢快取的問題 或者是遞迴和for迴圈哪...