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";
上述的代码是在Qt中运行的,所以最终的输出使用了qDebug(),标准c++的用户直接操作Useingtime或者dfTime可以得到相同的结果。
代码是我在网上扒的,原文排版不太好看,我转载了一下。这哥们儿也是转的,方法比我的多,我只转了其中一种。原文在此。