特性 | JDK 8 默认(Parallel GC) | JDK 17 默认(G1 GC) |
---|---|---|
设计目标 | 吞吐量优先 | 低延迟优先 |
适用场景 | 批处理任务、大型应用 | Web 服务、实时系统、大内存应用 |
STW 停顿时间 | 较长 | 较短(可预测停顿时间) |
堆内存支持 | 适合中小堆内存 | 适合大堆内存(>4GB) |
并发性 | 部分并发 | 高度并发 |
配置复杂度 | 简单 | 较复杂 |
为什么 JDK 8 默认使用 Parallel GC?
为什么 JDK 17 默认使用 G1 GC?
可以通过以下命令查看当前 JDK 的默认垃圾回收器:
java -XX:+PrintCommandLineFlags -version
输出示例:
-XX:+UseParallelGC
-XX:+UseG1GC
如果你希望使用其他垃圾回收器,可以通过 JVM 参数进行切换。例如:
-XX:+UseG1GC
-XX:+UseZGC