码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2018-04-29 20:31:50      阅读:248      评论:0      收藏:0      [点我收藏+]

标签:回收   loading   scl   lol   效率   cti   复制   整理   标记   

一、串行收集器

  -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回收

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

标签:回收   loading   scl   lol   效率   cti   复制   整理   标记   

原文地址:https://www.cnblogs.com/NoYone/p/8971770.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!