Java8默认使用的GC类型

先说结论 默认使用的是 Parallel Scavenge (新生代) 和 Parallel Old (老年代),基于我的Jdk 1.8.0_181-b13版本

1 先简单的介绍Java目前的垃圾收集器

连线的部分标识可以配合使用,对垃圾收集器不做过多介绍

 

Java8默认使用的GC类型_第1张图片

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 (老年代)

你可能感兴趣的:(#,java>jdk\jvm相关)