我正在尝试探索GingerBread(2.3)中新的并发垃圾收集器的行为。
有人可以详细解释这些示例日志行(尤其是GC_CONCURRENT
和GC_FOR_MALLOC
的“已暂停”部分)吗?
12-24 10:20:54.912 D/dalvikvm( 414): GC_CONCURRENT freed 510K, 57% free 2529K/5831K, external 716K/1038K, paused 8ms+5ms
12-24 10:20:54.963 D/dalvikvm( 414): GC_FOR_MALLOC freed 510K, 57% free 2529K/5831K, external 716K/1038K, paused 47ms
最佳答案
GC_CONCURRENT
堆(几乎)已满。因此,并发GC启动freed 510K
-释放的内存量57% free
-释放%2529K/5831K
-堆external 716K/1038K
-外部分配的内存(不在dvm中的内存)paused 8ms+5ms
-GC 对于并发收集,有两个暂停时间。一个是在收藏的开始,另一个是在收藏的结尾。对于非并行收集,只有一个暂停时间。