64,652
社区成员
发帖
与我相关
我的任务
分享
double get_time() //参数表要为一个函数指针
{
LARGE_INTEGER litmp;
LONGLONG QPart1,QPart2;
double dfMinus, dfFreq, dfTim;
QueryPerformanceFrequency(&litmp);
dfFreq = (double)litmp.QuadPart;// 获得计数器的时钟频率
QueryPerformanceCounter(&litmp);
QPart1 = litmp.QuadPart;// 获得初始值
/*******
统计部分代码(这里运行函数指针指向的函数)
*******/
do
{
QueryPerformanceCounter(&litmp);
QPart2 = litmp.QuadPart;//获得中止值
dfMinus = (double)(QPart2-QPart1);
dfTim = dfMinus / dfFreq;// 获得对应的时间值,单位为秒
}while(dfTim<0.000001);
return dfTim;
}
::LARGE_INTEGER liFrequency;
::LARGE_INTEGER liStart;
::LARGE_INTEGER liEnd;
void
StartClock()
{
::QueryPerformanceFrequency(&liFrequency);
::QueryPerformanceCounter(&liStart);
}
void
EndClock()
{
::QueryPerformanceCounter(&liEnd);
std::printf("Painted performed in: %f milliseconds.\n",
double(1000 * 1.0 / liFrequency.QuadPart
* (liEnd.QuadPart - liStart.QuadPart)));
}
struct Counter
{
::LARGE_INTEGER liFrequency;
::LARGE_INTEGER liStart;
::LARGE_INTEGER liEnd;
Counter()
{
//StartClock();
}
~Counter()
{
//EndClock();
}
};
{
Counter counter;
//xxoo to be counted;
}