Google 애플 리케이션의 메모리 사용량을 분석 중이며 이상한 숫자 인 Drawables
을 발견했으며 수십 메가 바이트의 힙을 지속적으로 "먹습니다". 여기에 몇 가지 스크린 샷 MAT에서있다 :메모리 덤프에서 미리로드 된 시스템 드로어 블 (비트 맵) ID 또는 이름을 찾는 방법
지배자 나무 2 꽤 큰 비트 맵 위의 비트 맵이 항상 비트 맵
중 하나에 뿌리를 GC하는
경로은 힙 덤프에 나타납니다 내 휴대 전화 (삼성 갤럭시 넥서스, OS 4.1.1)에서 얼마나 오래 또는 얼마나 집중적으로 우리의 애플 리케이션을 사용합니다.
나는 행운을 들이지 않고 MAT를 사용하여이 비트 맵의 소스를 이미 검색하려고했습니다.
을하지만 우리의 응용 프로그램은 단일 512 × 512 드로어 블이없는 : 내가 찾을 수 있었다 모든 유용한 정보를 width
와 비트 맵의 height
했다, 그것은 모두 512 × 512이다. 나는 이것이 "시스템"드로어 블이라고 가정합니다. 그러나 정확하게 무엇? 왜 그렇게 커요?
또한 android.content.res.Resources
클래스의 소스 코드를보고 sPreloadedDrawables
필드의 사용법을 검색했습니다. 또한 운이 없었습니다. 내가 메모리 덤프에서 얻은 것은 key
에서 배열은 sPreloadedDrawables
이지만 파일 이름이나 리소스 ID를이 키로 결정할 수는 없습니다.
그래서, 내 질문은 다음과 같습니다
는 어떻게이을 비트 맵의 이름 또는 ID를 확인할 수 있습니까?
이 거대한 비트 맵이로드되고 왜 항상 메모리에 남아있는 이유?
업데이트는 :
나는 look at this bitmaps from memory dump 할 수있는 방법을 발견했다. 이 두 비트 맵은 간단한 그라디언트, 하나는 검정, 다른 하나는 흰색입니다. 이 내용은 Holo.Light
및 Holo.Dark
ICS 테마의 리소스라고 생각합니다. 그러나 두 번째 질문은 여전히 실제입니다 : 왜이 비트 맵은 항상 메모리에 남아 있습니까? 업로드하거나 재활용 할 수있는 방법이 있습니까?
가 왜 이러한 비트 맵의 이름/ID를 원하는가인가? – toadzky
이 비트 맵에 대해 무엇을로드했는지 알기 위해이 비트 맵의 이름/ID를 원하고 내 코드에서 무언가를하려고 시도했습니다. – HitOdessit