timeGetTime()을 이용한 코드 구동시간 클래스
프로그래밍 언어/C++2011. 12. 17. 14:04
timeGetTime() 함수를 이용한 ms 까지의 시간을 구할 수 있는 코드 구동시간 클래스를 제작하였음.
CodeTimer.h
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | #pragma once //******************************************* // Code Timer ver 1.0 Free // // by Copynull@nate.com // 2011. 12. 17 //******************************************* #include <MMSystem.h> #pragma comment(lib, "winmm.lib") class CCodeTimer { public: CCodeTimer(void); ~CCodeTimer(void); public: BOOL Begin(); BOOL End(); inline DWORD const GetTime() { return dwEndTime-dwStartTime; } private: BOOL bIsBegin; DWORD dwStartTime; DWORD dwEndTime; }; |
CodeTimer.cpp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | #include "StdAfx.h" #include "CodeTimer.h" CCodeTimer::CCodeTimer(void) { bIsBegin = FALSE; dwStartTime = 0; dwEndTime = 0; } CCodeTimer::~CCodeTimer(void) { } BOOL CCodeTimer::Begin() { timeBeginPeriod(1); bIsBegin = TRUE; dwStartTime = timeGetTime(); return TRUE; } BOOL CCodeTimer::End() { if(!bIsBegin) return FALSE; bIsBegin = FALSE; dwEndTime = timeGetTime(); timeEndPeriod(1); return TRUE; } |
main.cpp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | // cmd.cpp : 콘솔 응용 프로그램에 대한 진입점을 정의합니다. // #include "stdafx.h" #include "CodeTimer.h" int _tmain(int argc, _TCHAR* argv[]) { CCodeTimer tt; DWORD dwSum = 0; // Timer Start if(!tt.Begin()) return -1; // something do ... for(DWORD i=0; i<1000000000; i++) dwSum += i; // Timer End if(!tt.End()) return -1; // Time Check printf("구동 시간 : %d ms\n", tt.GetTime()); return 0; } |
간단히 위와 같이 헤더 파일을 추가후 클래스 객체를 생성한 다음 사용하면 된다.
'프로그래밍 언어 > C++' 카테고리의 다른 글
EmptyWorkingSet과 SetProcessWorkingSetSize를 이용한 메모리 최적화 툴 제작하기 (1) | 2012.02.10 |
---|---|
프로그램 개발은 반드시 유니코드로 개발하는것이... (0) | 2012.02.10 |
[잡담] SEH (Structured Exception Handler)의 불편한 진실 (1) | 2011.12.13 |
Visual Studio 2010 에디터 테마 색상 적용 (3) | 2011.12.06 |
winapi 윈도우 c++ 클래스화 (0) | 2011.11.30 |