在编程过程中经常遇到测试一段程序执行时间的问题,下面给出两种测试代码段执行时间的方法以供参考。
第一种方法:低精度,GetTickCount()函数的精度只有10ms,所以如果程序执行时间小于10ms,不能使用该函数
DWORD Milliseconds_Parser_Start;
DWORD Milliseconds_Parser_End;
Milliseconds_Parser_Start = ::GetTickCount();
// 待测试代码段
Milliseconds_Parser_End = ::GetTickCount();
TCHAR debugStr[256];
_stprintf(szDebug, "item: %d milin sec \n",Milliseconds_Parser_End - Milliseconds_Parser_Start);
OutputDebugString(debugStr);
第二种方法:高精度
LARGE_INTEGER t_freqency;
QueryPerformanceFrequency(&t_freqency);
float f_countDiff2Milisecond = float(1000.0/t_freqency.QuadPart);
LARGE_INTEGER start;
LARGE_INTEGER end;
QueryPerformanceCounter(&start);
// 待测试代码段
QueryPerformanceCounter(&end);
TCHAR debugStr[256];
_stprintf(debugStr, _T("item: %f milin sec \n"),(end.QuadPart - start.QuadPart) * f_countDiff2Milisecond );
OutputDebugString(debugStr);
CSDN博客:http://blog.csdn.net/rabbit729/archive/2010/05/22/5616976.aspx
posted on 2010-08-18 14:49
风轻云淡 阅读(539)
评论(0) 编辑 收藏 引用 所属分类:
C++