본문 바로가기

3.구현/VC++

메모리릭(Memory leak) 관련

메모리 릭 문제는 해충과 같다. 아무리 없애도 또 나오고, 다시 없애도 다시 나온다. 아무리 좋은 기술과 좋은 방법을 도입한다고 해도 근본적인 문제해결은 되지않으며 단지 도움만 될뿐이다.
여기서 그 도움이 되는 기술을 살펴보겠다.

작성자: Ospace(ospace114@empal.com), cyworld.com/ospace

메모리릭(Memory leak) 관련

CMemoryState

MFC 클래스로 현재 메모리 스냅샷을 저장해두어 메모리 릭 위치를 찾는데 도움이 된다.
MSDN에서 Taking Memory Snapshots으로 찾으면 된다.
사용방법은 간단하다.

  1. 객체 선언
  2. 시작 스냅샷
  3. 끝 스냅샷
  4. 비교

<예제>

// 객체 선언
CMemoryState begin, end, diff;

// 시작 스냅샷
begin.Checkpoint();

// 중략 (코드 실행)

// 끝 스냅샷
end.Checkpoint();

// 비교, 결과 출력
if(diff.Difference(begin, end)) {
   diff.DumpStatistics(); // 문제가 있을 경우만 출력
}
반응형