参数配置 说明 默认值
-XX:+UseG1GC 启用G1收集器
-XX:+UnlockExperimentalVMOptions 解锁实验参数,允许使用实验性参数,JVM中有些参数不能通过-XX直接复制需要先解锁,比如要使用某些参数的时候,可能不会生效,需要设置这个参数来解锁;
-XX:ParallelGCThreads 并行阶段的GC线程数,逻辑cpu核数 < 8时 n=逻辑cpu核数,逻辑cpu核数>8时n=逻辑cpu核数*5/8
-XX:G1HeapRegionSize 指定Region分区大小(1M~32M,必须是2的N次幂),默认将整堆划分为2048个区 2048
-XX:MaxGCPauseMillis 指定最大停顿时间(默认是200ms) 200
-XX:G1NewSizePercent 新生代在堆内存中最小占比(默认5,占比5%) 5
-XX:MaxG1NewSizePercent 新生代在堆内存中最大占比(默认60,占比60%) 60
-XX:TargetSurvivorRatio Survivor区的填充容量(默认50%),Survivor区的一批对象(年龄1+年龄2+…+年龄n的多个年龄对象)空间占用总和超过了Survivor区域的50%,此时就会把年龄n(含)以上的对象放入老年代
-XX:MaxTenuringThreshold 最大年龄阈值(默认15)
-XX:InitaitingHeapOccupancyPercent 老年代占用空间达到整堆内存的阈值(默认45%),则执行新生代和老年代的混合收集MixedGC
-XX:G1MixedGCLiveThresholdPercent (默认85%)Region中的存活对象低于这个值时才会回收该Region,如果超过这个值,存活对象过多,回收的作用不大。
-XX:G1MixedGCCountTarget 再一次回收过程中指定做几次筛选回收(默认8次),在最后一次筛选回收阶段可以回收一会,然后暂停回收,恢复系统运行,一会再继续回收,这样可以让系统不至于单次停顿时间过长
-XX:G1HeapWastePercent (默认5%)gc过程中空出来的Region内存是否充足阈值,在混合回收的时候,对Region都是基于复制算法进行的,都是要把回收的Region中存活的对象放入其他的Region中,然后这个Region中的垃圾对象全部清理掉,这样的话在回收过程中会不断的空出新的Region,一旦空闲出来的Region数量达到堆内存的5%,此时就会立即停止混合回收,意味着本次混合回收就结束了。
-XX:-G1PrintHeapRegions 打印Region分配与回收日志 false
-XX:-G1PrintRegionLivenessInfo 默认false,打印堆中所有Region活跃度日志 false

G1配置命令:

-XX:MaxGCPauseMillis=200              #默认200毫秒,最大停顿时间
-XX:+UnlockExperimentalVMOptions -XX:G1NewSizePercent=5      #默认5,设置年轻代在堆内存中最小占比
-XX:+UnlockExperimentalVMOptions -XX:G1MaxNewSizePercent=60  #默认60,设置年轻代在堆内存中最大占比
-XX:ParallelGCThreads=n               #设置并行阶段的GC线程数,逻辑cpu核数<8时n=逻辑cpu核数,逻辑cpu核数>8时n=逻辑cpu核数*5/8
-XX:ConcGCThreads=n                   #设置并发阶段的GC线程数,n = ParallelGCThreads值 / 4
-XX:InitiatingHeapOccupancyPercent=45  #默认45%,老年代在堆内存中占比,超过时触发Mixed GC
-XX:+UnlockExperimentalVMOptions -XX:G1MixedGCLiveThresholdPercent=85  #默认值85,Region中对象活跃度<此值时,将处于Mixed GC回收周期中
-XX:G1HeapWastePercent=5              #默认5%,允许垃圾对象占用堆内存最大占比
-XX:G1MixedGCCountTarget=8            #默认8次,标记周期结束后最多执行n次Mixed GC
-XX:G1ReservePercent=10               #默认占堆内存10%,设置预留空闲内存占比
-XX:+UnlockExperimentalVMOptions -XX:G1OldCSetRegionThresholdPercent=10 #默认占堆内存10%,设置Mixed GC中被回收的老年代比例上限
-XX:-G1PrintHeapRegions               #默认false,打印Region分配与回收日志
-XX:-G1PrintRegionLivenessInfo        #默认false,打印堆中所有Region活跃度日志

————————————————
版权声明:本文为CSDN博主「無_爲」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/a526001650a/article/details/123714814

作者:Jeebiz  创建时间:2023-09-11 23:41
最后编辑:Jeebiz  更新时间:2024-08-02 14:21