我只想100%说清楚。
Android操作系统使用两种GC算法-标记&清除和并发标记&清除。
在2.3之前,没有并发算法--只有串行算法。
串行标记&清扫-是压缩算法,仅适用于年轻一代。
CMS适用于两代(Yong和Old),并且它不是紧凑的,只是使用免费列表。此外,安卓系统中没有PermGen空间。一般而言,CMS与老一代一起工作,因为Young已经通过串行算法清除。
我说的对吗?:)
发布于 2015-11-05 14:18:17
在Android5.0之前,没有压缩GC,Dalvik VM只实现了标记和清除GC(这可以是并发,所以您的语句不准确,因为CMS也是一个标记和清除GC)和复制<代码>E29 GC,并根据不同的情况使用它们中的任何一个(抱歉,我不知道什么时候使用哪个算法)。
而Android5.0 ART引入了3种压缩GC :半空间GC、世代半空间GC和标记&紧凑型GC(MC).Since。紧凑型GC的效率不如Mark&Sweep,但可以处理后者无法处理的内存碎片,紧凑型GC用作背景GC,而Mark&Sweep用作前台GC。
https://stackoverflow.com/questions/13347372
复制相似问题