GC - 垃圾收集器参数

2022-12-21  本文已影响0人  面向对象架构
参数 描述
UseSerialGC Client 模式下的默认值,打开后,使用 Serial + Serial Old 组合进行内存回收
UseParNewGC 打开后,使用 ParNew + Serial Old 组合进行内存回收,JDK 9 后不再支持
UseConcMarkSweepGC 打开后,使用 ParNew + CMS + Serial Old 组合进行内存回收。Serial Old 作为 CMS 收集出现“Concurrent Mode Failure”失败后的后备收集器使用
UseParallelGC JDK 9前Server 模式下的默认值,打开后,使用 Parallel Scavenge + Serial Old(PS MarkSweep)组合进行内存回收
UseParallelOldGC 打开后,使用 Parallel Scavenge + Parallel Old 组合进行内存回收
SurvivorRatio 新生代中 Eden 区域与 Survivor 区域的容量比值,默认为 8,代表 Eden : Survivor = 8:1
PretenureSizeShreshold 直接晋升到老年代的对象大小,设置这个参数后,大于这个参数的对象将直接在老年代分配
MaxTenuringThreshold 晋升到老年代的对象年龄。。每个对象在坚持过一次 Minor GC 之后,年龄就增加 1,当超过这个参数值时就进入老年代
UseAdaptiveSizePolicy 动态调整 Java 堆中各个区域的大小以及进入老年代的年龄
HandlePromotionFailure 是否允许分配担保失败,即老年代的剩余空间不足以应付新生代的整个 Eden 和 Survivor 区的所有对象都存活的极端情况
ParallelGCThreads 设置并行GC时进行内存回收的线程数
GCTimeRatio GC时间占总时间点的比率,默认值为 99,即允许 1%的GC时间。仅在使用 Parallel Scavenge收集器时生效。
MaxGCPauseMillis 设置GC的最大停顿时间,仅在使用 Parallel Scavenge 时生效。
CMSInitiatingOccupancyFraction 设置CMS在老年代空间被使用多少后触发垃圾收集。默认值为 68%,仅在使用 CMS 时生效。
UseCMSCompactAtFullCollection 设置CMS收集器在完成垃圾收集后是否要进行一次内存碎片整理。仅在使用 CMS 时生效,JDK 9 后废弃
CMSFullGCsBeforeCompaction 设置CMS在进行若干次垃圾收集后再启动一次内存碎片整理。。仅在使用 CMS 时生效,JDK 9 后废弃
UseG1GC 使用 G1 收集器,JDK 9后 Server模式的默认值
G1HeapRegionSize=n 设置 Region 大小,并非最终值
MaxGCPauseMillis 设置 G1 收集过程目标时间,默认值 200ms,不是硬性条件
G1NewSizePercent 新生代最小值,默认值 5%
G1MaxNewSizePercent 新生代最大值,默认值 60%
ParallelGCThreads 用户线程冻结期间并行执行的收集器线程数
ConcGCThreads=n 并发标记、并发整理的执行线程数,对不同的收集器,根据其能够并发的阶段,有不同的含义
InitiatingHeapOccupancyPercent 设置触发标记周期的 Java 堆占用率阈值。默认值 45%。这里的堆占比指 non_young_capacity_bytes,包括 old + humongous
UseShenandoahGC Shenandoah何时启动一次 GC 过程,其可选值有 adaptive、static、compact、passive、aggressive
UseZGC 使用 ZGC 收集器,目前仍然要配合 -XX:+UnlockExperimentalVMOptions 使用
UseNUMA 启用 NUMA 内存分配支持,目前只有 Parallel 和 ZGC 支持
上一篇 下一篇

猜你喜欢

热点阅读