c 準確計時 C 精確計時

2021-10-18 05:23:49 字數 898 閱讀 5509

#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迴圈哪...