안드로이드 애플리케이션 개발 환경이 Eclipse에서 Android Studio로 넘어오면서
Memory Analzyer(이하 MAT - Memory Analyzer Tool)를 사용하는 것이 좀 애매해 졌습
니다.

기존에는 MAT가 Eclipse의 플러그인 형태로 제공되었기 때문에 MAT를 이용하려면
Eclipse를 추가로 실행해야 합니다. 또한 더 이상 Eclipse용 ADT가 업데이트 되지
않으므로 DDMS -> MAT 로 연계시켜 이용하는 방법이 어려울 거라 예상됩니다.

그래서 앞으로는 Android SDK에 포함된 Android Device Monitor(sdk/tools/monitor)에
서 hprof 덤프를 떠서 MAT Stand-alone 에서 로딩 하는 방법으로 이용해야 합니다.
(나중에라도 Android SDK에 포함된 Android Device Monitor 에서 MAT 플러그인을 설치
할 수 있도록 지원이 되어 바로 DDMS - MAT 연계가 되면 좋겠지만, 지금 테스트 해 본
결과, 현재 Eclipse MAT 플러그인 설치는 되지 않습니다.)

먼저 MAT Stand-alone 버전의 다운로드는 아래 링크에서 받을 수 있습니다.

http://ftp.kaist.ac.kr/eclipse/mat/1.6/rcp/
(이 글을 쓰는 시점 기준으로 1.6 최신 버전입니다. 공식 사이트의 속도가 너무 느려
서 일부러 한국 미러 사이트 링크를 걸어 두었습니다.)

위 링크에서 플랫폼에 맞는 버전을 선택해서 다운로드 하시면 되겠습니다.
단, 리눅스 버전의 경우 openjdk를 사용하게 되면 자꾸 죽는 현상이 발생했습니다.
혹시 같은 문제가 생기시는 분은 MemoryAnalyzer.ini 파일에 아래 두 줄을 추가해 주
세요. jdk 위치는 각자 환경에 맞게 수정하시면 됩니다.

-vm
/usr/lib/jvm/jdk1.7.0_51/bin


그리고 가져온 hprof 파일의 포맷을 변환하는 방법은 아래와 같습니다.

sdk/platform-tools/hprof-conv src dst


추가로 adb 명령으로도 hprof 덤프를 받을 수 있습니다.

adb shell am dumpheap pid혹은process명 hprof파일경로


위 명령으로 생성된 파일은 디바이스 내장메모리에 저장이 되므로, adb pull 명령으로
PC로 가져와야 합니다.  하지만 'Cause GC' 를 수행 할 수 없기 때문에 힙 덤프 분석
이 좀 더 귀찮아 질 것 같습니다.



P.S
이후 시간이 된다면 hprof-conv를 좀 더 편하게 할 수 있는 Front-End 툴을 만들어
첨부 하도록 하겠습니다.

반응형

설정

트랙백

댓글