Java CMS垃圾回收器 YGC 执行流程
Java CMS垃圾回收器的YGC(Young Generation Collection)执行流程如下:
-
初始标记:在YGC开始前,先进行一次初始标记,标记出需要回收的对象。
-
并发标记:在初始标记完成后,进入并发标记阶段,此时应用程序仍在运行,CMS垃圾回收器会扫描所有存活对象,并标记出活跃的对象。
-
并发预清理:在并发标记结束后,进行一次并发预清理,清理掉标记为可回收的对象,并标记出需要进一步处理的对象。
-
重新标记:在并发预清理完成后,需要重新标记所有需要进一步处理的对象,并标记出活跃的对象。
-
并发清理:在重新标记完成后,进行一次并发清理,清理掉标记为可回收的对象。
-
并发重置:在并发清理结束后,进行一次并发重置,重置所有标记。
-
等待下一次YGC:YGC结束后,等待下一次触发YGC的条件出现。
需要注意的是,以上流程中的并发标记、并发预清理、并发清理和并发重置是在应用程序运行的情况下进行的,不会阻塞应用程序的运行。因此,Java CMS垃圾回收器被称为一种低停顿垃圾回收器。
原文地址: https://www.cveoy.top/t/topic/fF5l 著作权归作者所有。请勿转载和采集!