Qt测试计算时间

Posted flyinggod

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt测试计算时间相关的知识,希望对你有一定的参考价值。

博客转载自: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测试计算时间的主要内容,如果未能解决你的问题,请参考以下文章

26.Qt Quick QML-RotationAnimationPathAnimationSmoothedAnimationBehaviorPauseAnimationSequential(代码片段

Qt测试计算时间

计算光栅化片段的数量

QT 引用之前项目模板导致计算速度严重下降

Qt编程遇到的问题,我在qt中直接使用C语言的程序片段,有问题 ,求解

QT 部署不起作用缺少入口点