先说结论 默认使用的是 Parallel Scavenge (新生代) 和 Parallel Old (老年代),基于我的Jdk 1.8.0_181-b13版本
1 先简单的介绍Java目前的垃圾收集器
连线的部分标识可以配合使用,对垃圾收集器不做过多介绍
JavaGC.jpg
他们对应的JVM参数如下
新生代(别名) | 老年代 | JVM 参数 |
---|---|---|
Serial (DefNew) | Serial Old(PSOldGen) | -XX:+UseSerialGC |
Parallel Scavenge (PSYoungGen) | Serial Old(PSOldGen) | -XX:+UseParallelGC |
Parallel Scavenge (PSYoungGen) | Parallel Old (ParOldGen) | -XX:+UseParallelOldGC |
ParNew (ParNew) | Serial Old(PSOldGen) | -XX:-UseParNewGC |
ParNew (ParNew) | CMS+Serial Old(PSOldGen) | -XX:+UseConcMarkSweepGC |
G1 | G1 | -XX:+UseG1GC |
使用 jps 找出要查看java进程 pid 使用jinfo 命名查看 使用的GC组合类型
--java版本
wuffy@MacBook-Pro-2 ~/logs/gc java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
-- 获取程序pid
wuffy@MacBook-Pro-2 ~/logs/gc jps
3352 DuoCouponApplication
-- 使用jinfo确认
wuffy@MacBook-Pro-2 ~/logs/gc jinfo -flag UseParallelOldGC 3352
-XX:+UseParallelOldGC
wuffy@MacBook-Pro-2 ~/logs/gc jinfo -flag UseSerialGC 3352
-XX:-UseSerialGC
可以看到 我运行在JDK1.8 使用默认参数的java应用使用的GC组合是
Parallel Scavenge (新生代) 和 Parallel Old (老年代)