GC Log分析

Dalvik虚拟机,每一次GC打印内容格式:

    D/dalvikvm:  , , , 

含义解析

GC Reason:GC触发原因
GC_CONCURRENT:当已分配内存达到某一值时,触发并发GC;
GC_FOR_MALLOC:当尝试在堆上分配内存不足时触发的GC;系统必须停止应用程序并回收内存;
GC_HPROF_DUMP_HEAP: 当需要创建HPROF文件来分析堆内存时触发的GC;
GC_EXPLICIT:当明确的调用GC时,例如调用System.gc()或者通过DDMS工具显式地告诉系统进行GC操作等;
GC_EXTERNAL_ALLOC: 仅在API级别为10或者更低时(新版本分配内存都在Dalvik堆上)
Amount freed GC:回收的内存大小
Heap stats:堆上的空闲内存百分比 (已用内存)/(堆上总内存)
External memory stats: API级别为10或者更低:(已分配的内存量)/ (即将发生垃圾的极限)
Pause time:这次GC操作导致应用程序暂停的时间。关于这个暂停的时间,在2.3之前GC操作是不能并发进行的,也就是系统正在进行GC,那么应用程序就只能阻塞住等待GC结束。而自2.3之后,GC操作改成了并发的方式进行,就是说GC的过程中不会影响到应用程序的正常运行,但是在GC操作的开始和结束的时候会短暂阻塞一段时间。
Art虚拟机,每一次GC打印内容格式:

I/art:,,,,
基本情况和Dalvik没有什么差别,GC的Reason更多了,还多了一个LOS_Space_Status.

LOS_Space_Status:Large Object Space,大对象占用的空间,这部分内存并不是分配在堆上的,但仍属于应用程序内存空间,主要用来管理 Bitmap 等占内存大的对象,避免因分配大内存导致堆频繁 GC。

你可能感兴趣的:(GC Log分析)