IT_Programming/Android_Java

Android Studio 새로운 메모리 분석 도구를 품다! (Hello!! Allocation Tracker)

JJun ™ 2015. 11. 16. 13:44



 출처: https://arload.wordpress.com/2015/08/11/android-studio-hello-allocation-tracker/



안드로이드 개발시 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페이지부터 추가되어 있습니다.

day6profiler150810-150811041218-lva1-app6892.pdf


자료 업데이트는 NEXT의  김기렴 군이 수고해 주었습니다!  감사!!


day6profiler150810-150811041218-lva1-app6892.pdf
5.91MB