先引用这个 #include <windows.h> #include <QDebug>
再定义这些:
LARGE_INTEGER litmp;
LONGLONG Qpart1,Qpart2,Useingtime;
double dfMinus,dfFreq,dfTime;
以下为测时程序:
QueryPerformanceFrequency(&litmp);//取得高精度运行计数器的频率f,单位是每秒多少次(n/s),
dfFreq = (double)litmp.QuadPart;
QueryPerformanceCounter(&litmp);//取得高精度运行计数器的数值
Qpart1 = litmp.QuadPart; //开始计时
这里为要测的代码.........................
//测时结束,显示结果
QueryPerformanceCounter(&litmp);//取得高精度运行计数器的数值
Qpart2 = litmp.QuadPart; //终止计时
dfMinus = (double)(Qpart2 - Qpart1);//计算计数器值
dfTime = dfMinus / dfFreq;//获得对应时间,单位为秒,可以乘1000000精确到微秒级(us)
Useingtime = dfTime*1000000;
qDebug()<<dfTime<<"s";
本文详细介绍了一种在Windows环境下使用LARGE_INTEGER类型和QueryPerformanceFrequency及QueryPerformanceCounter函数进行高精度计时的方法,适用于测量代码片段的执行时间,精度可达微秒级。
5612

被折叠的 条评论
为什么被折叠?



