2013-10-08 1 views
0

내 응용 프로그램의 메모리 사용량 중 일부가 MAT를 사용하여 발생하는 부분을 해결하려고합니다.MAT로 안드로이드 메모리 사용량 추적

힙이 많은 비트 맵에는 몇 가지 참조가 있습니다. 실제 자원이 무엇인지 판단 할 수있는 방법이 있습니까? 이미지는 일반적으로 앱 내 드로어 블에서 가져옵니다. 객체 참조가 있지만 실제 드로어 블이 메모리를 차지할 수 있는지 확인하기 위해 드릴 다운하는 방법을 알아낼 수 없습니다.

enter image description here

일예 비트 맵에는 1MB 이상의 힙이 있고 300k 이상의 비트 맵이 있습니다.

+0

GC 루트를 추적하면 비트 맵에 무엇이 들어 있는지 파악할 수 있습니다. 그러면 그 원인을 식별하는 데 도움이됩니다. – CommonsWare

+0

@CommonsWare는 "Path to GC roots"이며 "모든 참조가 가장 좋은 참조"입니다. – Andrew

+0

"약점/약한 부분을 제외하고 모든 참고 문헌"과 같은 것이 있거나 조금 좋아질 것 같은 것이 있어야하지만 기본적으로 올바른 생각을 가지고 있습니다. – CommonsWare

답변

0

실제 문제를 정의하십시오. 이 크기의 Bitmap은 200x200px에서 500x500px 정도까지 매우 정상입니다.

당신이 OutOfMemoryError 초일 때 앱에 처음 접근 할 때 나는 히스토그램 (두 번째 아이콘, 파란색 막대 3 개)을 사용하고 your.package.*Activity에 필터를 사용하고 싶습니다. 인스턴스가 너무 많으면 메모리 누수가 있음을 의미합니다.

+0

문제는 내 앱이 많은 메모리 (일반적으로 25-40MB)를 소비하는 것 같지만, 사용자들의보고가 100MB 이상으로 증가했습니다. 앱에는 큰 이미지가 없습니다. 가장 큰 것이 약 20k 정도라고 생각합니다. 그래서 저는 어떤 것을 정확하게 지우지 않고 어떤 물체에서 GC를 멈추지 않을 것이라고 생각합니다. 일부 사용자가 OOM을받는 것을 알고 있지만 직접 본 적이 없습니다. – Andrew