在阅读有关ZGC的信息时,我注意到它吹嘘自己是“单代垃圾收集器”,但很少看到关于这个术语的详细说明。
常规分代GC
我熟悉Eden、survivor空间、nursery、hospice care、metaspace、permgen、僵尸对象、诺亚方舟和老年人之家,因此我不需要解释并发标记扫描(CMS GC)或垃圾优先(G1 GC)算法的工作原理。我的理解是它们都是多代的,我对此很满意。
就我个人而言,我总是喜欢通过Java Mission Control查看一个对象经过了多少代GC周期。这在故障排除内存泄漏或GC问题时总是非常有用。
单代与多代GC
那么什么是“单代”垃圾收集器,它与CMS和G1中当前跟踪对象在多次垃圾收集周期中的方式有什么不同呢?