특집기사:SWT 릭 추적하기

위클립스
이동: 둘러보기, 찾기

이문서는 dispose()가 누락되어 발생하는 SWT 운영체제 자원 릭을 추적하는 방법을 설명한다.

목차

[편집] SWT Tools 설치

SWT Tools Update Site에서 개발 타겟 버전에 적합한 SWT Tools를 설치한다. 이 때, 개발환경과 타겟 플랫폼이 다른 경우, 타겟 플랫폼에 이 플러그인을 설치해야 한다.

업데이트 사이트 URL
최신 빌드 http://www.eclipse.org/swt/updates/3.8
3.6.x http://www.eclipse.org/swt/updates/3.6
3.5.x http://www.eclipse.org/swt/updates/3.5

[편집] 추적 옵션 켜기

추적 옵션 켜기

SWT Tools는 SWT 릭을 추적하는 뷰를 가지고 있지만, Display가 허용할 때에만 추적이 가능하다. 이를 가능하게 하는 가장 쉬운 방법은, 실행 옵션에서 이 추적이 가능하도록 설정하는 것이다:

타겟 플랫폼에 SWT Tools를 설치 했고, 추적 옵션을 모두 켰으면, 이제 디버그로 실행하자.

실행 구성에 SWT Tools 플러그인이 포함되도록 설정했는지 확인 할 것.

[편집] Sleak 사용하기

Windows > Show View > Sleak 을 이용해 Sleak 뷰를 열수 있다.

[편집] 기본 전략

Sleak 뷰의 기본 전략은 덤프를 뜬 뒤, 특정 작업을 수행하고, 리소스들의 차이점을 비교하는 것이다:

  1. Snap 버튼을 눌러 초기상태의 덤프를 작성.
  2. 릭이 의심되는 작업을 수행 한 뒤 종료.
  3. Diff 버튼을 눌러 그 사이 새로만들어진 리소스중 디스포즈 되지 않은 자원 목록을 획득.

[편집] Sleak을 이용한 추적

Sleak뷰의 Snap 버튼을 누른뒤, 릭이 의심되는 적당한 작업을 수행하고, Diff버튼을 누르면 그 사이에 새롭게 만들어졌으나 디스포즈 되지 않은 리소스들이 나타난다. 리소스를 선택하면 직접 눈으로 볼 수 있다.

Sleak3.jpg

[편집] 리소스가 생성된 위치 추적

스택 옵션을 체크 하면, 리소스가 만들어진 시점의 스택을 볼 수 있다.

Sleak4.jpg

[편집] 정리

Sleak과 디버깅 트레이스 옵션을 이용하면 SWT 자원을 추적할 수 있다. 초기 상태의 자원 상태의 스냅을 저장한 뒤, 특정 작업을 실행하고, Diff 버튼을 눌러 새로 생성된 디스포즈 되지 않은 자원들을 확인 할 수 있다.

그러나, 이 목록이 모두 릭은 것은 아니다. 기존 자원을 디스포즈하고 새로운 자원으로 교체를 한 것일 수도 있고, 새로운 공유 자원이 만들어진 것일수도 있다는 점을 주의하자. --Jeeeyul 2011년 8월 11일 (목) 11:29 (KST)

[편집] 링크

이 기사에 대한 의견은 토론 페이지를 통해 나눌 수 있습니다.

개인 도구
이름공간
변수
행위
포탈
탐색
도움
도구모음