下面列出JVM GC时常用的相关参数,供参考。
1、UseSerialGC
虚拟机运行在Client模式下的默认值,打开后,使用Serial和Serial Old两种组合的垃圾收集器进行GC。
2、UseParNewGC
设置后,使用ParNew和Serial Old两种组合的垃圾收集器进行GC。
3、UseConcMarkSweepGC
设置后,使用ParNew、CMS和Serial Old组合的垃圾收集器进行GC。
4、UseParallelGC
虚拟机运行在Server模式下的默认值,设置后,使用Parallel Scavenge 和Serial Old的组合垃圾收集器进行GC。
5、SurvivorRatio
年轻代中Eden Space和Survivor Space区域的容量比值,默认为8,即Eden:Survivor=8:1。
6、PretenureSizeThreshold
代表直接进入年老代中的对象大小,设置此值后,大于这个参数的对象将直接在年老戴中进行内存分配。
7、MaxTenuringThreshold
在分代GC算法中,此值代表对象转移到年老代中的年龄,每个对象经历过一次年轻代GC(Minor GC)后,年龄就加1,到超过设置的值后,对象转移到老年代。
8、UseAdaptiveSizePolicy
动态调整Java堆中各个区域的大小以及进行年老代的年龄。
9、HandlePromotionFailure
是否允许分配担保失败,即年老代中的剩余内存空间不足以应付年轻代的整个Eden和Survivor Space的所有对象都存活的极端情况。
10、ParallelGCThreads
设置并行GC时进行内存回收的线程数量。
不断补充中。