G1垃圾回收算法 核心流程
G1是一种新型的垃圾回收算法,其核心流程如下:
-
初始标记阶段(Initial Marking):该阶段用于标记根对象,并将其直接关联的对象标记为可达。
-
并发标记阶段(Concurrent Marking):该阶段是并发执行的,同时标记所有可达对象,包括从根对象可达的所有对象。
-
并发预清理阶段(Concurrent Precleaning):该阶段是并发执行的,用于处理在标记阶段中发生的一些变化,例如新建对象、对象的引用关系发生变化等。
-
最终标记阶段(Final Marking):该阶段是在并发标记阶段停顿时执行的,用于标记在并发标记阶段中被遗漏的对象。
-
筛选回收阶段(Live Data Counting and Evacuation):该阶段根据存活对象的数量和垃圾对象的数量确定回收的区域,将存活对象迁移到新的区域中。
-
筛选清理阶段(Clearing):该阶段是在筛选回收阶段完成后执行的,用于清除被回收的区域中的所有垃圾对象。
G1垃圾回收算法通过将内存划分为多个区域,以及对每个区域进行不同的垃圾回收策略,有效地提高了垃圾回收的效率,同时也降低了应用程序的停顿时间
原文地址: http://www.cveoy.top/t/topic/fpUQ 著作权归作者所有。请勿转载和采集!