失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 精确打印程序的运行时间

精确打印程序的运行时间

时间:2024-07-13 06:31:15

相关推荐

精确打印程序的运行时间

在写程序时,经常要计算某一段程序运行所需要的时间,通常用GetCurrentTime来计算时间差,但此函数所得的时间本身就不准备,它的精度也是毫秒级的,所以测试程序的运行时间也只是一个大概时间。要得到微秒级精确度可以使用函数QueryPerformanceCounter和QueryPerformanceFrequency,这两个函数是根据CPU的嘀嗒来进行计数的。为了方便代码编写,利用C++类的构造与析构函数的特性写一个打印代码运行时间的类

classCPrintfCodeTime

{

public:

CPrintfCodeTime(constchar*vCodeName)

{

m_strName=(NULL!=vCodeName)?vCodeName:"";

LARGE_INTEGERtTimer;

QueryPerformanceCounter(&tTimer);

m_llTime=tTimer.QuadPart;

}

~CPrintfCodeTime(void)

{

LARGE_INTEGERtTimer;

QueryPerformanceCounter(&tTimer);

doubledbTime=double(tTimer.QuadPart-m_llTime);

//获取CPU的频率

QueryPerformanceFrequency(&tTimer);

dbTime=dbTime/tTimer.QuadPart;

m_strRunCode+=vCode;

chartBuf[100]={0};

#ifndef__BORLANDC__

//输出调试信息

sprintf_s(tBuf,"运行时间为%.3f毫秒\n",dbTime*1000);

#else

sprintf(tBuf,"运行时间为%.3f毫秒\n",dbTime*1000);

#endif

m_strName+=tBuf;

OutputDebugString(m_strName.c_str());

m_strName.clear();

}

stringm_strName;

LONGLONGm_llTime;

};

如果觉得《精确打印程序的运行时间》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。