Eclipse Memory Analyzer는 Java Heap 메모리 분석 도구이다.
메모리 릭을 발견하거나 분석을 통해 메모리 소비를 줄일 수 있도록 지원한다.
설치
STEP1. MAT eclipse plug-in 설치
Help > Install New Software ...
work with [ http://download.eclipse.org/releases/juno ]
검색창에 memory 입력
[General Purpose Tools]의 [Memory Analyzer]와
[Memory Analyzer(Charts) [optional] 선택
STEP2. perspective 열기
Windows > Open Perspective > Memory Analyzer
<참고> MAT는 자바공용 툴이다. 그래서 안드로이드의 경우 hprof 파일을 추출한후에 Conversion을 거쳐 MAT에서 그 파일을 로드하여 분석한다.
STEP3. 안드로이드에서 hprof 추출하기
DDMS에서 [Dump HPROF file] 아이콘을 클릭하여 hprof파일을 추출한다.
사용가능한 메뉴
Action
- Histogram : 클래스당 인스턴스 수를 리스트로 출력
- Dominator Tree: Biggest Object List와 그것을 keep alive하게 하는것에 대한 정보 출력
- Duplicate Classes: 다중 클래스 로더에 의해 중복적으로 로드된 클래스 정보 출력
Report
- Leak Suspects: 메모리 누수를 발생할 가능성이 있는 객체에 대한 정보와 시스템 개요 정보 출력
- Top Components: 힙사용량이 전체 힙사이즈의 1%이상인 컴퍼넌트 리스트 출력
Step by Step
- COmponent Report: common root package또는 class loader에 포함되는 오브젝트 분석 정보 출력
[참고용어]
결과물을 이해하기 위해 기본적으로 정리해야 하는 용어
Shallow Heap: 1개의 오브젝트가 소비하고 있는 메모리량. 한개의 참조에 대해 4바이트 사용
Retained Heap: GC에의해 제거되는 오브젝트가 사용한 Shallow Heap의 합계
'모바일앱 > 앱성능 최적화' 카테고리의 다른 글
rendscript 예제 (0) | 2013.03.08 |
---|---|
안드로이드 앱 성능 최적화 랩 파일 다운로드 링크 (0) | 2013.03.06 |
안드로이드앱을 위한 메모리 분석 (0) | 2013.02.25 |
[앱성능최적화] 렌드스크립트 (1) | 2013.02.20 |
[앱성능최적화-01] 자바코드 최적화 (0) | 2013.01.24 |