Java垃圾收集器参数及其含义
先来回顾一下java的垃圾收集器有哪些:
1,Serial收集器
2,ParNew收集器
3,Parallel Scavenge收集器
4,Serial Old收集器
5,Parallel Old收集器
6,CMS收集器(Concurrent Mark Sweep)
垃圾收集器参数及其含义
UseSerialGC JVM运行在Client模式下的默认值,此参数开启后,JVM将使用Serial收集器和
Serial Old收集器组合进行垃圾回收。
UseParNewGC 此参数开启后,JVM将使用ParNew收集器和Serial Old收集器组合进行垃圾回收。
UseConcMarkSweepGC 此参数开启后,使用ParNew+CMS+Serial Old收集器组合进行内存回收。
Serial Old收集器将作为CMS收集器出现Concurrent Mode Failure失败后的后备收集器使用。
UseParallelGC JVM运行在Server模式下的默认值,此参数开启后,使用Parallel Scavenge+
Serial Old收集器组合进行内存回收。
UseParallelOldGC 此参数开启后,使用Parallel Scavenge+Parallel Old收集器组合进行内存
回收。
SurvivorRatio 新生代中Eden区和Survivor区域的容量比值,默认值为8,即Eden:Survivor=8:1
PretenureSizeThreshold 直接晋升到老年代的对象大小,也就是说大于这个参数的对象,将会
直接分配到老年代。
MaxTenuringThreshold 晋升到老年代的对象年龄。当对象的年龄超过这个参数时,就会晋升到
老年代。
UseAdaptiveSizePolicy 动态调整Java堆中各个区域的大小以及进入老年代的年龄。
HandlePromotionFailure 是否允许分配担保失败,也就是说,当老年代的剩余空间不足以应付
新生代的整个Eden区和Survivor区的所有对象都存活的极端情况。
ParallelGCThreshold 设置并行GC时进行内存回收的线程数。
GCTimeRatio GC时间占比,默认值为99,也就是允许1%的GC时间,仅仅在使用Parallel Scavenge
收集器时生效。
MaxGCPauseMillis 设置GC的最大停顿时间。仅仅在使用Parallel Scavenge收集器时生效。
CMSInitiatingOccupancyFraction 设置CMS收集器在老年代空间被使用多少后GC。默认值68%,仅
仅在使用CMS收集器时生效。
UseCMSCompactAtFullCollection 设置CMS收集器在完成GC后是否需要进行一次内存碎片整理,仅
仅在使用CMS收集器时生效。
CMSFullGCsBeforeCompaction 设置CMS收集器在进行若干次GC后再启动一次内存碎片整理,仅
仅在使用CMS收集器时生效。
先来回顾一下java的垃圾收集器有哪些:
1,Serial收集器
2,ParNew收集器
3,Parallel Scavenge收集器
4,Serial Old收集器
5,Parallel Old收集器
6,CMS收集器(Concurrent Mark Sweep)
7,G1收集器(Garbage First)
垃圾收集器参数及其含义
UseSerialGC JVM运行在Client模式下的默认值,此参数开启后,JVM将使用Serial收集器和
Serial Old收集器组合进行垃圾回收。
UseParNewGC 此参数开启后,JVM将使用ParNew收集器和Serial Old收集器组合进行垃圾回收。
UseConcMarkSweepGC 此参数开启后,使用ParNew+CMS+Serial Old收集器组合进行内存回收。
Serial Old收集器将作为CMS收集器出现Concurrent Mode Failure失败后的后备收集器使用。
UseParallelGC JVM运行在Server模式下的默认值,此参数开启后,使用Parallel Scavenge+
Serial Old收集器组合进行内存回收。
UseParallelOldGC 此参数开启后,使用Parallel Scavenge+Parallel Old收集器组合进行内存
回收。
SurvivorRatio 新生代中Eden区和Survivor区域的容量比值,默认值为8,即Eden:Survivor=8:1
PretenureSizeThreshold 直接晋升到老年代的对象大小,也就是说大于这个参数的对象,将会
直接分配到老年代。
MaxTenuringThreshold 晋升到老年代的对象年龄。当对象的年龄超过这个参数时,就会晋升到
老年代。
UseAdaptiveSizePolicy 动态调整Java堆中各个区域的大小以及进入老年代的年龄。
HandlePromotionFailure 是否允许分配担保失败,也就是说,当老年代的剩余空间不足以应付
新生代的整个Eden区和Survivor区的所有对象都存活的极端情况。
ParallelGCThreshold 设置并行GC时进行内存回收的线程数。
GCTimeRatio GC时间占比,默认值为99,也就是允许1%的GC时间,仅仅在使用Parallel Scavenge
收集器时生效。
MaxGCPauseMillis 设置GC的最大停顿时间。仅仅在使用Parallel Scavenge收集器时生效。
CMSInitiatingOccupancyFraction 设置CMS收集器在老年代空间被使用多少后GC。默认值68%,仅
仅在使用CMS收集器时生效。
UseCMSCompactAtFullCollection 设置CMS收集器在完成GC后是否需要进行一次内存碎片整理,仅
仅在使用CMS收集器时生效。
CMSFullGCsBeforeCompaction 设置CMS收集器在进行若干次GC后再启动一次内存碎片整理,仅
仅在使用CMS收集器时生效。
-- 以上内容整理自《深入理解Java虚拟机》