GC는 Garbage Collector의 약자입니다
dalvikvm Tag 로
GC_CONCURRENT freed 11405k, 59% free 3107K/7431K, external 3299k/4120k, puased 4ms+3ms
라는 log가 찍힙니다.
다음과 같은 format으로 로그가 찍힙니다.
[Reason] [Amount Freed], [Heap Statistics], [External Memory Statistics], [Pause Time]
[Reason] : GC 발동의 원인을 나타냅니다.
1. GC_FOR_MALLOC : 객체 생성의 있어서 힘에 메모리를 할달 받아야 할 때 힙에 남아있는 사용가능한 메모리 공간이 충분치 않을때.
2. GC_EXPLICIT : GC가 명시적으로 불렸을 때. Runtime.gc(), VMRuntime.gc(), SIGUSR1 등.
3. GC_CONCURRENT : 힙의 사용 한계점(사용 한계점은 내부적으로 정해진다.)을 넘어섰을때.
4. GC_EXTERNAL_ALLOC : VM이 garbage 될 객체들이 사용하고 있는 공간을 그렇지 않은 객체들을 위해 공간을 미리 확보하려 할때.
5. GC_HPROF_DUMP_HEAP : 힙의 컨텐츠를 파일로 저장할 때(WITH_HPROF flag를 사용할 때만)
[Amount Freed] : 말 그대로 읽은 파일의 Kbyte를 나타낸다.
[Heap Statistics] : GC가 발동 된 이후의 상태를 말한다.
59% free 3107K/7431K => 남은 공간 59%, 사용중인 공간 3107K, 힙의 총 사이즈 7413K
[External Memory Statistics] : 외부 메모리 관련인데.... Bitmap 관련해서 외부메모리 따로 할당하는 것인데... 잘 이해가 안가서 생략.... ㅈㅅ (Bitmap 관련해서 따로 메모리를 쓰는 경우가 아니라면 값이 변하지 않는 것 같습니다.)
[Pause Time] : GC로 인해 일시정지된 시간 (milliseconds)
4ms+3ms => GC_CONCURRENT 일때에만 2개의 []ms+[]ms 꼴로 출력된다. 앞의 []ms는 GC가 발동되기 이전의 pause 시간이고, 뒤의 []ms는 garbage collecting이 거의 완료된 순간에 pause된 시간이다.
[출처] Android logcat - GC_CONCURRENT, FOR_MALLOC, EXPLICIT, EXTERNAL_ALLOC, GC_HPROF_DUMP_HEAP|작성자 원종천
'Tech develop > Android' 카테고리의 다른 글
[Android] Fragment 의 life cycle (0) | 2018.06.14 |
---|---|
[Android]제네릭을 이용한 class작성 시 타입 알아내기 (0) | 2016.06.27 |
[Android/안드로이드]Activity Shared Elements Transitions(액티비티 이동 애니메이션) (0) | 2016.04.25 |
[android]device model info. 기기 모델 정보 가져오기 (0) | 2016.04.14 |
[Android]html형식의 txt 파일 읽어오기 (0) | 2016.03.23 |