Qt與C 如何測試程式執行時間,精度高低

2021-09-09 08:28:39 字數 1683 閱讀 7860

程式執行時間是程式設計的一項重要指標,在qt中如何測算程式的執行時間呢?

測試函式:

#include void function()  

方法1 利用qtime,其精度為ms級

#include #include qtime time;

time.start();

function();

qdebug()《執行結果:0.109 s

方法2 利用gettimeofday(),其精度為us級

#include #include struct timeval tpstart,tpend;

float timeuse;

gettimeofday(&tpstart,null);

function();

gettimeofday(&tpend,null);

timeuse=(1000000*(tpend.tv_sec-tpstart.tv_sec) + tpend.tv_usec-tpstart.tv_usec)/1000000.0;

qdebug()《執行結果:0.109375 s

方法3 利用clock(),其精度為ms級

#include #include double time_start = (double)clock();

function();

double time_end = (double)clock();

qdebug()<<(time_end - time_start)/1000.0<<"s";

執行結果:0.11 s

方法4 利用windows.h(vc)函式,提精度為us級

#include #include large_integer litmp;

longlong qpart1,qpart2,useingtime;

double dfminus,dffreq,dftime;

//獲得cpu計時器的時鐘頻率

queryperformancefrequency(&litmp);//取得高精度執行計數器的頻率f,單位是每秒多少次(n/s),

dffreq = (double)litmp.quadpart;

queryperformancecounter(&litmp);//取得高精度執行計數器的數值

qpart1 = litmp.quadpart; //開始計時

function(); //待測試的計算函式等

queryperformancecounter(&litmp);//取得高精度執行計數器的數值

qpart2 = litmp.quadpart; //終止計時

dfminus = (double)(qpart2 - qpart1);//計算計數器值

dftime = dfminus / dffreq;//獲得對應時間,單位為秒,可以乘1000000精確到微秒級(us)

useingtime = dftime*1000000;

qdebug()《執行結果:0.107415 s

【**清單】

#include #include #include #include #include void function();

int main(void)

void function()

C 測試程式執行時間

我們應當忘記小的效能優化,百分之九十七的情況下,過早的優化都是萬惡之源 這句話在很多時候都被引用到,以至於 不要優化 注意,是 不要優化 而不是 不要過早優化 已經深入人心,過度地推崇這條建議經常會成為如下行為的藉口 還有另乙個常識 優化是不重要的,這條常識的理由,在程式設計師工具箱中最強大的優化技...

C 測試程式執行時間

1.時間測試 datetime starttime datetime.now timespan timespan 程式主體 timespan datetime.now.subtract starttime 獲取就是開始時間很結束時間差 2.用於.net環境的時間測試 只測試 在自身程序中的時間 ne...

Qt測算程式執行時間

問題描述 程式執行時間是程式設計的一項重要指標,在qt中如何測算程式的執行時間呢?解析 測試函式 html view plain copy include math.h void function 方法1利用qtime,其精度為ms級 html view plain copy include qde...