每天两个JVM参数(一)-- jdk8
一、参数
-XX:+UseParallelGC:
允许在年轻代中使用并行线程进行收集。默认情况下,该选项是禁用的。当您设置-XX:+UseConcMarkSweepGC选项时,它会自动启用。使用-XX:+UseParNewGC选项而不使用-XX:+UseConcMarkSweepGC选项在JDK 8中已弃用。
-XX:+UseConcMarkSweepGC :
为老年代启用CMS垃圾收集器。当吞吐量(-XX:+UseParallelGC)垃圾收集器不能满足应用程序延迟需求时,Oracle建议您使用CMS垃圾收集器。G1垃圾收集器(-XX:+UseG1GC)是另一种选择。
默认情况下,该选项是禁用的,并根据机器的配置和JVM的类型自动选择收集器。当该选项启用时,会自动设置-XX:+UseParNewGC选项,你不应该禁用它,因为以下选项组合在JDK 8中已被弃用:-XX:+UseConcMarkSweepGC -XX:-UseParNewGC。
二、使用说明
UseParallelGC:
只启用UseParallelGC参数的情况下,老年代会默认使用SerialOldGC。
jvm有-XX:+UseSerialOldGC这个启动参数吗
UseConcMarkSweepGC :
Old GC:只收集old gen的GC。只有CMS的concurrent collection是这个模式。
CMS GC主要是定时去检查old gen的使用量,当使用量超过了触发比例就会启动一次CMS GC,对old gen做并发收集。
CMS 不等于Full GC,我们可以看到CMS分为多个阶段,只有stop the world的阶段被计算到了Full GC的次数和时间,而和业务线程并发的GC的次数和时间则不被认为是Full GC。