3.深入jvm内核-原理、诊断与优化-5. GC参数-cms垃圾收集器

风流意气都作罢 提交于 2019-11-30 10:34:17
  1. 串行收集器

  2. 并行收集器

    ···

    ···

  3. cms收集器

    并发与并行

  4. GC参数整理

     -XX:+UseSerialGC:在新生代和老年代使用串行收集器
     -XX:SurvivorRatio:设置eden区大小和survivior区大小的比例
     -XX:NewRatio:新生代和老年代的比
     -XX:+UseParNewGC:在新生代使用并行收集器
     -XX:+UseParallelGC :新生代使用并行回收收集器
     -XX:+UseParallelOldGC:老年代使用并行回收收集器
     -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回收
    

  5. 总结:

     cms相对来说有以下特点:
     1、能保证系统的响应时间,减少垃圾收集时的停顿时间,对一些做监控的应用优其重要。
     2、Cms采用Mark-Sweep会对堆产生空间碎片,但是可以指定在经过几次垃圾回收后再做总的空间整理
     3、虽然fgc回收时间相对比并行收集器少,但总的回收次数确是多的,所以会导致系统停顿次数变多,导致吞吐量下降。
    
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!