안드로이드 개발시 Eclipse에서 Android Studio로 넘어가는 하나의 허들이 Memory 분석 툴이었는데. Android Studio 가 이에 대한 해답을 가지고 왔습니다.
안드로이드 스튜디오가 Memory 관련 프로파일러들을 잔뜩 추가/업데이트를 했습니다.
기존에 command 명령어를 좀더 시각적으로 보여주고, 이클립스 플러그인 MAT에서 볼수 있는 내용을 좀더 보기 편하게 만들었다고 생각이 듭니다.
Memory Monitor
디테일한 메모리 분석용이라기 보다는 앱을 실행시키면서 메모리가 갑자기 튀어 오른다음. 특정 시간이 지나도록 감소하지 않는 등과 같이 큰 흐름을 판단하기 좋은 도구 입니다. 모든 시나리오를 상세하기 일일이 heap dump를 떠 가며 분석하는 것은 큰 비용이 드는 일입니다.
핵심 시나리오나, Crash Report로 보고된 에러중 Out Of Memory등으로 보고된 에러들을 다시 한번 이 툴로 가볍게 검증해 보시길 바랍니다. 이렇게 말씀 드리는 이유는 이러한 에러가 특정 디바이스나 특정 OS에서만 나는 경우가 있기 때문에 가볍게 상황을 판단하실때 쓰라는 말씀 입니다.
Heap Viewer
위 Allocation Tracker로 메모리 누수가 의심되는 부분을 선별하신 다음 Heap Viewer로 해당 스냅샵만 분석해서 보는 것입니다. 아마 MAT가 하나의 heap dump로 추측을 해서 문제점을 선별해 주는데, 아직 그 레벨까지는 아니고 메모리 사용량이 많은 순으로 보여주고 보고 있습니다.
Allocation Tracker
이 부분은 MAT에 비해 칭찬하고 싶습니다.
실제 Heap Dump는 하나의 스냅샷으로 찍는 것이 의미가 없구요. 최소 두 개의 스냅샷을 찍어서 Before / After를 비교해야 합니다. 좀더 정확히 말하면 더 많이 찍어야 합니다. 여튼 MAT는 두개의 스냅샷을 분석하더라도 히스토그램 형태로 단순 비교를 해 실제 분석하기 힘듭니다.
Android Studio에 포함된 Allocation Tracker는 MAT에 비해 좀더 시각적으로 보기 편하게 스냅샷을 비교할 수 있습니다.
개념과 실제 사용법
이러한 툴을 쓰기 위해서는 MAT와 동일하게 Dominator Tree라는 개념을 이해하고 있어야 합니다. NEXT 수업자료인 메모리 프로파일링 부분에 해당 자료를 업데이트 하였으니 참고하시기 바랍니다. 위 사항은 49페이지부터 추가되어 있습니다.
자료 업데이트는 NEXT의 김기렴 군이 수고해 주었습니다! 감사!!
[…] Android Studio 새로운 메모리 분석 도구를 품다! (Hello!! Allocation Tracker) […]