JVM配置启用几种垃圾收集器的参数说明

-XX:+UseSerialGC

新生代和老年代都使用串行收集器

串行收集器使用单线程并且是独占式的垃圾回收

-XX:+UseParNewGC

新生代使用ParNew垃圾回收器,老年代使用串行收集器

ParNew是串行收集器的多线程版本,只工作在新生代(可以见名知义,ParNew:Paralle New,并行新生代)。可以考虑在CPU并发能力强的系统中使用ParNew,单CPU的话,性能不一定比串行收集器好。

-XX:+UseParallelGC

新生代使用ParallelGC回收器,老年代使用串行收集器

ParallelGC是工作在新生代的并行垃圾收集器,使用复制算法。只是它更关注系统的吞吐量,所以和ParNewGC的一个区别是有相关参数可以设置GC的停顿时间。

-XX:+UseParallelOldGC

新生代使用ParallelGC,老年代使用ParallelOldGC

ParallelOldGC是ParallelGC的老年代版本,只工作在老年代,使用标记压缩的回收算法,JDK1.6版本及之后支持

-XX:+UseConcMarkSweepGC

新生代使用ParNew,老年代使用CMS

CMS垃圾收集器更关注系统停顿时间,采用标记清除算法并且使用多线程并行回收。

CMS在GC失败时,老年代会使用串行收集器

-XX:+UseG1GC

使用G1回收器,作用于新生代和老年代

 

工作在新生代的垃圾收集器:SerialGC、ParNewGC、ParallelGC

工作在老年代的垃圾收集器:CMS、SerialGC、ParallelOldGC

G1同时在新生代和老年代工作。

可以搭配使用的垃圾收集器配合为(前面新生代,后面老年代):

SerialGC+SerialGC

SerailGC+CMS

ParNewGC+SerialGC

ParNewGC+CMS

ParallelGC+ParallelOldGC

ParalleGC+SerialGC

G1

 

你可能感兴趣的:(------》jvm)