자신이 수행하는 루틴의 성능을 측정하는 방법으로 그 루틴이 수행된 시간을 획득 하는 방법이 있다.
Windows에서는 여러가지 시간측정 방법을 제시하는데, 여기서는 QueryPerformanceCounter를 알아보겠다.
QueryPerformanceCounter : 고성능의 카운터이다. LONGLONG 형의 64bit 인자를 가지며, 가장 낮은 단위의 시간측정을 지원한다. 하지만 일부 최신의 시스템(CPU 클럭이 2G이상이거나, AMD사의 듀얼 코어 이상의 제품)에서는 잘못된 값을 전달하기때문에 문제가 발생 할 수 있다.
사용방법
#includestatic LARGE_INTEGER initial; static LARGE_INTEGER freq; void Start() { QueryPerformanceCounter(&initial); } void Performance() { LARGE_INTEGER counter; double StartQuerytime; double EndQuerytime; QueryPerformanceCounter(&counter); QueryPerformanceFrequency(&freq); StartQuerytime = ((double)(counter.QuadPart-initial.QuadPart)) / ((double)freq.QuadPart); 측정함수(); QueryPerformanceCounter(&counter); QueryPerformanceFrequency(&freq); EndQuerytime = ((double)(counter.QuadPart-initial.QuadPart)) / ((double)freq.QuadPart); printf("%d", (unsigned int)((EndQuerytime-StartQuerytime)*1000)); }
'Programming > C++ With MFC' 카테고리의 다른 글
OnCancel(), OnClose(), OnDestroy(), OnOK() 그리고 Dialog 소멸자 (1) | 2009.03.02 |
---|---|
CTime, CTimeSpan 클래스 (0) | 2009.03.01 |
USES_CONVERSION (0) | 2009.02.24 |
LPSTR, LPCSTR, LPTSTR, LPCTSTR , LPWSTR, LPCWSTR (0) | 2009.02.24 |
C++ : Friend Function & Friend Class(프렌드 함수와 클래스 ) (0) | 2009.02.21 |