ZGC,来自未来?

ZGC,来自未来?
10种GC垃圾回收器
Serial 单线程最原始已停用,Stop The World来清理,效率低。
升级的重点在于减少STW时间。
ZGC,来自未来?
四个阶段:

main方法里的对象,是root对象,在初始的STP阶段,它们会被注有初始标记,它们会形成对象图,在工作过程中产生大量的垃圾。

在工作过程中,不需要STP,没用的垃圾会被标为并发标记。

重新标记,会STP来,重新标记,避免之前发生的漏标和错标。

最后,在并发过程中进行清理。

ZGC,来自未来?

CMS和G1都是采用三色标记。
ZGC,来自未来?
如上情况,D会被漏标。
CMS的解决方案:
Incremental Update

ZGC,来自未来?
但是,并发状态下,依然会漏标。

G1(Garbage First)的解决方案:
Snapshot At the Begining
ZGC,来自未来?
当B->D消失时,把这个引用推到了GC堆栈,保证还能被GC扫描到。
ZGC,来自未来?
G1 Rset浪费空间,
ZGC,来自未来?

ZGC:
性能强大,号称Zero Paused GC
ZGC,来自未来?