Java 在 Linux 上的垃圾回收机制概览
Linux 对 GC 行为的关键影响
常用 GC 与适用场景
| 收集器 | 主要目标 | 适用场景 | 关键要点 |
|---|---|---|---|
| Serial GC | 简单、低开销 | 客户端/单核或资源受限环境 | 单线程回收,STW 明显 |
| Parallel GC(Throughput) | 最大化吞吐量 | 批处理、后台计算 | 多线程并行回收,年轻/老年代均并行 |
| CMS(已废弃) | 降低停顿 | 传统低延迟场景 | 并发标记清除,老年代回收并发,停顿较短但复杂 |
| G1 GC | 可预测停顿、大堆 | 大堆、响应时间敏感 | 区域化分代,年轻/混合回收,面向停顿目标 |
| ZGC(JDK 11+) | 极低停顿、超大堆 | 超大堆与严格延迟要求 | 并发标记/整理,停顿通常可控制在毫秒级 |
| 说明:在 Java 11 起可使用 ZGC;G1 自 Java 9 起为默认收集器(面向可预测停顿的大堆场景)。 |
在 Linux 上观测与排查 GC 的实用方法
Linux 下的实用调优建议