
SerialParallelCMS(Concurrent Mask Sweep)G1垃圾回收线程和应用线程的并行性串行串行部分并行部分并行垃圾回收线程数单个多个多个多个垃圾回收算法年轻代复制老年代整理年轻代复制老年代整理年轻代复制老年代标记-清除不使用整理的目的是减小STW时间年轻代复制老年代通过分区和复制的方式实现了高效的整理使用场景小型单机应用如嵌入式应用批处理应用低延迟适合交互式应用平衡了延迟和吞吐量适合大堆应用第一步确认 JDK 版本├── JDK8 → G1 或 Parallel├── JDK11/17 → G1 或 ZGC└── JDK21 → ZGC大幅增强分代ZGC第二步确认堆内存大小├── 1G → Serial 或 Parallel├── 1G ~ 8G → G1├── 8G ~ 数十G → G1 或 ZGC└── 数十G ~ TB → ZGC第三步确认核心诉求├── 吞吐量优先 → Parallel GC├── 延迟优先 → ZGC / Shenandoah└── 吞吐延迟平衡 → G1