JVM为什么现代主要用G1 和 CMS 两种垃圾收集器,而不用其他?

JVM为什么现代主要用G1 和 CMS 两种垃圾收集器,而不用其他?

阅读 3.2k
1 个回答

目前除了仍处于实验状态的 ZGC 和 Shenandoah(这两款收集器可以把停顿时间控制在10毫秒以内),G1 和 CMS 在低停顿这一点上做得是最好的
Shenandoah 与之前各款收集器的对比.png

虽然吞吐量不如 Parallel 和 Serial,但是现在的网站,特别是与用户交互频繁的网站,一般都更看重低停顿时间,因为低停顿可以带来更好的用户体验,正是因为如此,CMS 和 G1 成了目前的主流选择,不过未来有望被 ZGC 和 Shenandoah 取代。
推荐Java 虚拟机系列三:垃圾收集器一网打尽,船新的 ZGC 和 Shenandoah 听说过吗

宣传栏