常用的 GC 参数
1.串行回收器相关参数-XX:+UseSerialGC 新生代和老年代都使用串行收集器
-XX:+SurviviorRatio 设置 eden 区大小和survivior 区大小的比例
-XX:PertenureSizeThreshold 设置大对象直接进入老年代的阈值,当对象的大小超过这个值时
直接进入老年代
-XX:MaxTenuringThreshold 设置对象进入老年代年龄的最大值,每一个 Minor GC后,对象年龄
就增加 1 ,任何大于这个年龄的对象,一定会进入老年代
2.并行 GC 相关参数
-XX:+UseParNewGCC 新生代使用并行收集器
-XX:+UseParallelOldGC 老年代使用并行回收器
-XX:ParallelGCThreads 设置用于垃圾回收的线程数,通常与CPU数量相等
-XX:MaxGCPauseMillis 最大垃圾回收停顿时间
-XX:GCTimeRatio 设置吞吐量,系统将花费不超过1/(1+n) 时间用于垃圾回收
-XX:+UseAdaptiveSizePolicy 打开自适应 GC 策略
3.CMS 回收器相关的参数
-XX:+UseConcMarkSweepGC 新生代使用并行收集器,老年代使用 CMS 收集器
-XX:ParallelCMSThreads 设定 CMS 的线程数量
-XX:CMSInitiatingOccupancyFraction 设置在老年代堆空间使用到多少时,触发GC ,默认是 68%
-XX:+UseCMSCompactAtFullCollection 设置GC 收集器完成垃圾回收后是否进行一次内存碎片整理
-XX:CMSFullGCsBeforeCompaction 设定多少次 CMS 回收后,进行一次内存压缩
-XX:+CMSClassUnloadingEnabled 是否对 pren 区(元数据区)进行回收
-XX:CMSInitiatingPermOccupancyFraction 当永久区占用达到这一百分比的时候出发CMS回收(前提:
-XX:+CMSClassUnloadingEnabled 已经激活)
-XX:UseCMSInitiatingOccupangyOnly 达到阈值才进行 CMS 回收
-XX:CMSIncrementalMode 使用增量模式,适合单CPU ,JDK1.8标记废弃,JDK1.9彻底移除
4.G1 回收器相关的参数
-XX:+UseG1GC 使用G1回收器
-XX:MaxGCPauseMillis 设置最大垃圾回收停顿时间
-XX:GCPauseIntervaMillis 设置停顿间隔时间
5. TLAB 相关
-XX:+UsrTLAB 使用TLAB 分配
-XX:+PrintTLAB 打印TLAB 相关信息
-XX:TLABSize 设置 TLAB 大小
-XX:+ResizeTLAB 自动调整 TLAB 大小
-XX:-ResizeTLAB 禁用自动调整 TLAB 大小
-XX:TLABRefillWasteFraction redill_waste值,当对象大于该值时直接分配在堆上,小于该值
废弃当前 TLAB ,建立一个新的 TLAB 分配对象。默认值时 64
6.其他参数
-XX:DisableExplicitGC 禁用显式 GC
-XX:ExplicitGCInvokesConcurrent 使用并发方式处理显式 GC