-
无论 -XX:+UseParallelGC 还是 -XX:+UseParallelOldGC ,新生代都是 ParallelGC,即 Parallel Scavenge,区别在于年老代,前者是串行,后者是并行。
-
无论 -XX:+UseConcMarkSweepGC 还是 -XX:+UseParNewGC ,新生代都是ParNew,区别在于年老代,前者是CMS(当然,他失败了就会执行serialold),后者是串行。
-
-XX:+UseSerialGC 和 -XX:+UseG1GC 就好理解了,前者都是串行,后者都是G1.
再说三句:
-
UseParNewGC java8 已废弃
-
UseConcMarkSweepGC java9已废弃
-
总结前两句,ParNew不受待见,再说多你就晕了。
最后啰嗦一句,如果觉得标题党,那就忽略这一句:
不要说jdk x默认的垃圾收集器是什么,与jdk发行版有关,同样的代码使用jdk8同一子版本测试在mac是parallel,在centos是serial。
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)