Java-GC垃圾收集器

 

 

 

1. Serial

  young generation

  “单线程”收集器,是指进行垃圾收集时,必须暂停其他所有工作线程,直到收集结束。是历史最悠久的收集器。

2. Serial Old

  tenured generation

  Serial收集器的老年代版本,用途:可与Parallel Scavenge搭配使用;作为CMS收集器的后备预案。

3. ParNew

  young generation

  是Serial收集器的多线程版本。青年代收集时不需要stop the world。

  调优参数:

    -XX:SurvivorRatio

    -XX:PretenureSizeThreshold

    -XX:HandlePromotionFailure

4. Parallel Scavenge

  young generation

  GC自适应调优算法,注重吞吐量

  调优参数:

    -XX:GCTimeRatio    垃圾收集时间站总时间的比率,吞吐量的倒数

    -XX:MaxGCPauseMillis  最大垃圾收集停顿时间

 

5. Parallel Old

  tenured generation

  Parallel Scavenge收集器的老年代版本,使用多线程的标记整理算法。

  在注重吞吐量以及CPU资源敏感的场合,都可使用Parallel Scavenge与Parallel Old组合

   

6. CMS

  tenured generation

  一种以获得最短回收停顿时间为目标的收集器。 

    -XX:+UseConcMarkSweepGC     打开CMS

7. G1

 

垃圾收集器常用参数:

参数                     描述                                            
UseSerailGC  
UseParNewGC  
UseConcMarkSweepGC  
UseParallelGC  
SurvivorRatio 新生代中Eden区与Survivor区的容量比例,默认为8,Eden:Survivor=8:1
PretenureSizeThreshold 晋升至老年代对象大小,大于则在老年代分配
MaxTenuringThreshold 晋升至老年的年龄,经过一次Minor GC则加1,大于则进老年代
UseAdaptiveSizePolicy 动态调整个区域大小及进入老年代年龄
HandlePromotionFailure  
ParallelGCThreads 并行GC内存回收线程数
GCTimeRatio GC时间占总时间比率,默认99,即允许1%的GC时间。仅在Parallel Scavenge收集器生效
MaxGCPauseMillis GC最大停顿时间。仅在Parallel Scavenge收集器生效
CMSInitiatingOccupancyFraction CMS在年老代被使用多少后触发GC。默认68%,仅CMS
UseCMSCompactAtFullCollection CMS收集后是否进行内存碎片整理,仅CMS
CMSFullGCsBeforeCompaction CMS进行若干次收集后才进行内存碎片整理
   

 

 

posted @ 2017-06-08 11:03  Jenkin.K  阅读(269)  评论(0编辑  收藏  举报