Java G1 垃圾收集器详解:Region、并发标记、Mixed GC 与调优
· 阅读需 23 分钟
Garbage-First (G1) 收集器是一种服务器式垃圾收集器,针对具有大内存的多处理器机器。它以高概率满足垃圾收集 (GC) 暂停时间目标,同时实现高吞吐量。 Oracle JDK 7 update 4 及更高版本完全支持 G1 垃圾收集器。 G1 收集器专为以下应用而设计:
- 可以与 CMS 收集器等应用程序线程同时操作。
- 紧凑的可用空间,没有冗长的 GC 引起的暂停时间。
- 需要更多可预测的 GC 暂停持续时间。
- 不想牺牲很多吞吐量性能。
- 不需要更大的 Java 堆。 G1 的目标是在吞吐量与可预测停顿之间取得平衡。分析问题时应基于 GC 日志、对象分配速率和停顿原因,不应只凭单个 JVM 参数判断效果。