Qt測試計算時間
阿新 • • 發佈:2018-04-05
clas form min counter true cpp long 計算 tails
博客轉載自:https://blog.csdn.net/lg1259156776/article/details/52325508
1. 利用QTime,其精度為ms級
#include <QDebug> #include <QTime> QTime time; time.start(); function(); qDebug()<<time.elapsed()/1000.0<<"s";
2. 利用clock(),其精度為ms級
#include <QDebug> #include <sys/time.h> double time_Start = (double)clock(); function(); double time_End = (double)clock(); qDebug()<<(time_End - time_Start)/1000.0<<"s";
3. 利用windows.h函數,提精度為us級
#include <QDebug> #include <windows.h> 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()<<dfTime<<"s";
4. 利用gettimeofday(),其精度為us級
#include <QDebug> #include <sys/time.h> 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()<<timeuse<<"s";
Qt測試計算時間