JVM学习3--GC参数及收集器

一、串行收集器

  -XX:+UseSerialGC 

  从第二张图的时间可以看出来,复制算法的效率要比标记压缩算法高的多。

二、并行收集器

  -XX: +UseParNewGC (新生代并行,老年代串行)

  -XX: +UseParallelGC (新生代并行,老年代串行)

  -XX: +UsePrallelOldGC (新生代老年代都是串行)

  注意:多线程不一定更快,这就跟写程序一样,要注意使用场景。

  图示:

  

  注意图中红字,PSYoungGen和ParOldGen表示新生代老年代都用的并行收集器,所以此时的GC参数是 -XX: UseParallelOldGC。

三、CMS收集器(默认不使用,一般作为老年代串行收集器的后备)

  图示:

四、GC参数整理

  • -XX: +UseSerialGC:新生代和老年代使用串行收集器
  • -XX: +SurvivorRatio: 设置survivor区和eden区大小比率
  • -XX: +NewRatio: 新生代和老年代的比率
  • -XX: +UseParNewGC: 新生代使用并行收集器
  • -XX: +UseParallelGC: 新生代使用并行收集器
  • -XX: +UsePrallelOldGC: 老年代使用并行收集器
  • -XX: +ParallelGCThreads: 设置用于垃圾回收的线程数
  • -XX: +UseConcMarkSweepGC: 新生代使用并行收集器,老年代使用CMS+串行收集器
  • -XX: +ParallelCMSThreads: 设定CMS的线程数量
  • -XX: CMSInitiatingOccupancyFraction: 设置CMS收集器在老年代空间被使用多少后触发
  • -XX: +UseCMSCompactAtFullCollection: 设置CMS收集器在完成垃圾收集后是否要进行一次内存碎片的整理
  • -XX: CMSFullGCsBeforeCompaction:设定进行多少次CMS垃圾回收后,进行一次内存压缩
  • -XX: +CMSClassUnloadingEnabled:允许对类元数据进行回收
  • -XX: CMSInitiatingPermOccupancyFraction:当永久占用率达到这一百分比时,启动CMS回收
  • -XX: +UseCMSInitiatingOccupancyOnly: 表示只在达到阈值的时候,才进行CMS回收

猜你喜欢

转载自www.cnblogs.com/NoYone/p/8971770.html
今日推荐