您的位置:首页 > 其它

精确计算程序运行时间 秒杀毫秒级 精度远超毫秒

2012-10-01 13:35 561 查看
void timer()
{
SetThreadAffinityMask(GetCurrentThread(), 1);  //choose core
LARGE_INTEGER start, end;
LARGE_INTEGER freq;
double result;
//timeConsuming();
QueryPerformanceFrequency(&freq);

QueryPerformanceCounter(&start);//start
running(); //running
QueryPerformanceCounter(&end); //end
result=(end.QuadPart - start.QuadPart)/(double)freq.QuadPart;

std::cout<<"start.QuadPart = "<<start.QuadPart<<std::endl;         //output start
std::cout<<"end.QuadPart = "<<end.QuadPart<<std::endl;    //output end
std::cout<<"consume value = end.QuadPart - start.QuadPart = "<<(end.QuadPart - start.QuadPart)<<std::endl;
cout<<"frequency= "<<freq.QuadPart<<"Hz   "<<"("<<(double)freq.QuadPart/1024.0/1024.0<<"GHz)"<<endl;
std::cout<<"Time consumed:= "<<result<<"(s)"<<std::endl;  //output consumed time

}


把你要测试的程序代码,写到running函数中,运行timer可计算此次运行所费时间。

QueryPerformanceFrequency(&freq); //计算时钟频率

QueryPerformanceCounter(&start);//start //开始时间

running(); //running

QueryPerformanceCounter(&end); //end //结束时间

result=(end.QuadPart - start.QuadPart)/(double)freq.QuadPart;//精确计时。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: