2014-01-17 2 views
0

비트 맵의 ​​hashmap을 멤버 변수로 선언하고 역동적으로 채운 것처럼 내 안드로이드 서비스를 일부 변경했습니다.RAM 증가 - 안드로이드 서비스

저는 비트 맵이 상당한 RAM을 차지할 수도 있다고 우려하고 있습니다.

변경 후 RAM 사용량이 얼마나 증가하는지 확인하려면 어떻게해야합니까? 이것을 확인하는 도구가 있습니까?

누구든지이 분야에서 일해왔다면, 도와주세요!

+2

Eclipse는 이런 도구를 제공한다고 생각합니다. 또한 실제로 manifest에 android : largeHeap = "true"를 추가하여 힙 크기를 늘릴 수 있습니다. NDK를 사용해야하는 자신의 힙 크기를 결정하려는 경우 SDK로 얻을 수있는 절대 최대 힙 크기를 제공합니다. –

+2

가능한 중복 안드로이드에서 응용 프로그램 힙 크기] (http://stackoverflow.com/questions/2630158/detect-application-heap-size-in-android) –

+0

내 자신의 질문에 대답하기 위해 나는 그 힙 덤프를 캡처 발견 , 그리고 Memory Analyzer Tool (MAT)을 사용하여 두 개의 다른 지점에서 캡처 된 힙 덤프를 비교하는 것이 트릭입니다! 개발자 페이지 - http://developer.android.com/tools/debugging/debugging-memory.html#HeapDump에서 읽어보십시오. – superuser

답변

1

eclipse android sdk tools to detect the current heap allocation size가 있지만, 현재 힙 크기를 알 수있는 매우 간단한 방법이있다 :

가없고 "힙 성장"에 대한 로그 캣에서 검색. 응용 프로그램의 힙 크기가 커질 때마다 -이 로그는 현재 힙 크기를 나타내는 logcat에 인쇄됩니다.

는 다음과 같이 보일 것입니다 :

02-22 11:20:57.040: I/dalvikvm-heap(5313): Grow heap (frag case) to 213.551MB for 3850256-byte allocation 

을 일반적으로 너무 많은 비트 맵 할당의 상황을 방지하기 위해, 디스플레이에 필요한 규모의 유형에 자동으로 비트 맵을 할당, 당신이 처리하는 등의 라이브러리 Volley를 사용한다 캐싱 및 원격 서버 가져 오기.

Volley Mad Google에서 서버 앞의 모든 요청을 처리하기 위해 Google Play 응용 프로그램에서 사용했으며, 똑똑한 ImageLoader를 제공하여 자동으로 다운로드하고 정확한 샘플 크기로 디코딩하고 메모리 캐시를 표시합니다. 및 저장소 캐시 (지정된 경우).

+0

@ Tal Kanel : 서비스 시작시 "Grow heap"로그를 볼 수는 있지만 일부 키를 누르면 동적 비트 맵이 생성 될 때 로그가 표시되지 않습니다. – superuser

+0

@girlDevelopIt :이 로그가 인쇄되지 않을 때 - 힙 크기가 동일하게 유지되었음을 의미합니다. –

+0

@ Tal Kanel : 어떻게 가능합니까? 나는 키의 누를 때 새로운 비트 맵 객체를 만들고, 그것을 hashmap에 추가했다. 내 이해에 따라 그것은 오직 힙에만 갈 것인가? – superuser