JDK15 正式删除CMS。JDK11就已经把CMS标记为过期。JDK9开始使用G1作为「默认」的垃圾回收器(JDK11中ZGC开始崭露头角)。
1 ZGC
ZGC是Java 11引入的新的垃圾收集器(JDK9以后默认的垃圾回收器是G1),经过了多个实验阶段,自此终于成为正式特性,JDK15 正式发行。
1 停顿时间控制在10ms之内停顿时间不会因为堆变大而变长堆大小支持TB级。
2 尽管ZGC在对象回收的吞吐量方面略逊于G1回收器(差距小于15%),但综合来讲,ZGC已经是目前足够好用的垃圾回收器了。
3 暂时并不支持ARM架构处理器。(ZGC处于实验阶段)
2 Shenandoah
怎么形容Shenandoah和ZGC的关系呢?异同点大概如下:
相同点:性能几乎可认为是相同的
不同点:ZGC是Oracle JDK的,根正苗红。而Shenandoah只存在于OpenJDK中,因此使用时需注意你的JDK版本
打开方式:使用-XX:+UseShenandoahGC命令行参数打开。