Java1.8常用GC参数速查表

更新时间:2023-06-04 11:13:57 阅读: 评论:0

Java1.8常⽤GC参数速查表
GC信息打印
-verbo:gc
开启输出JVM GC⽇志
-verbo:class
查看类加载信息明细
-XX:+PrintGCDetails
GC⽇志打印详细信息
-XX:+PrintGCDateStamps
GC⽇志打印时间戳信息
-XX:+PrintHeapAtGC
在GC前后打印GC⽇志风信子观察日记
-XX:+PrintGCApplicationStoppedTime
打印应⽤暂停时间
-XX:+PrintGCApplicationConcurrentTime
打印每次垃圾回收前,程序未中断的执⾏时间
英语考研题型-Xloggc:./gc.log
指定GC⽇志⽬录何⽂件名
璀璨的意思是什么-XX:+HeapDumpOnOutOfMemoryError
当发⽣ OOM(OutOfMemory)时,⾃动转储堆内存快照,缺省情况未指定⽬录时,JVM 会创建⼀个名称为 java_pidPID.hprof 的堆 dump ⽂件在 JVM 的⼯作⽬录下
-XX:HeapDumpPath=/data/log/gc/dump/rve的名词
指定OOM时堆内存转储快照位置
-XX:+PrintClassHistogramBeforeFullGC、-
XX:+PrintClassHistogramAfterFullGC
Full GC前后打印跟踪类视图
双色眼影
-XX:+PrintTenuringDistribution
打印Young GC各个年龄段的对象分布
-XX:+PrintTLAB
打印TLAB(线程本地分配缓存区)空间使⽤情况
CMS/G1通⽤内存区域设置
-Xmx1024M
JVM最⼤堆内存⼤⼩
-Xms1024M
JVM初始内存⼤⼩,建议与-Xmx⼀致
-Xmn1536M
年轻代空间⼤⼩,使⽤G1收集器是不建议设置该值
-Xss1M
每个线程的堆栈⼤⼩
-XX:MaxMetaspaceSize=512M
最⼤元空间⼤⼩
-XX:MetaspaceSize=512M
初始元空间⼤⼩
-XX:SurvivorRatio=8
年轻代中Eden区与Survivor区的⼤⼩⽐值,缺省默认值为8
-
XX:MaxDirectMemorySize=40M
最⼤堆外内存⼤⼩
CMS/G1通⽤阈值设置
-XX:MaxTenuringThreshold=15
设置新⽣代需要经历多少次GC晋升到⽼年代中的最⼤阈值,缺省默认值为15
以小见大的成语-XX:PretenureSizeThreshold=1M
代表分配在新⽣代⼀个对象占⽤内存最⼤值,超过该最⼤值对象直接在old区分配,默认值缺省是0,代表对象不管多⼤都是先在Eden中分配内存
CMS/G1通⽤开关设置
-XX:+DisableExplicitGC
设置忽略()的调⽤,不建议设置该参数,因为很多NIO框架,例如Netty基于显⽰调⽤()来触发Full GC来处理虚应⽤,从⽽触发清理堆外内存,设置该参数之后会导致堆外内存
得不到清理 参考:为什么不推荐使⽤-XX:+DisableExplicitGC
-XX:+ParallelRefProcEnabled
开启尽可能并⾏处理Reference对象,建议开启
CMS/G1通⽤线程数设置
-XX:ParallelGCThreads=10
设置并⾏收集垃圾器在应⽤线程STW期间时GC处理线程数
-XX:ConcGCThreads=10
设置垃圾收集器在与应⽤线程并发执⾏标记处理(⾮STW阶段)时的线程数
CMS常⽤
-XX:+UConcMarkSweepGC
设置使⽤CMS作为⽼年代垃圾收集器
-
XX:CMSInitiatingOccupancyFraction=70
设置⽼年代空间使⽤的⽐率阈值多少时触发CMS GC,范围1~100,建议70,需要和-XX:+UCMSInitiatingOccupancyOnly参数搭配使⽤才⽣效
-XX:+UCMSInitiatingOccupancyOnly
设置CMS严格按照-XX:CMSInitiatingOccupancyFraction参数设置的阈值来触发CMS GC,如果没有设置,虚拟机会根据收集的数据决定是否触发,建议线上环境带上这个参数,不然会加⼤问题排查的难度
-XX:+ExplicitGCInvokesConcurrentAndUnloadsClass
保证显式调⽤()触发的是⼀个并发GC周期⽽不是Full GC,建议开启
-XX:+CMSClassUnloadingEnabled
发送CMS GC时触发类卸载,推荐开启
-XX:+CMSScavengeBeforeRemark
在CMS的重新标记阶段之前执⾏年轻代Young GC,可减少相当⼀部分的需要标记的对象,减少CMS重新标记时间的开销,建议开启
-XX:UCMSCompactAtFullCollection
是否在CMS发⽣Full GC之后是否进⾏空间整理,缺省默认开启(推荐)
-XX:CMSFullGCsBeforeCompaction
进⾏多少次Full GC之后进⾏⼀次空间整理,缺省默认值为0(推荐),即每次Full GC过后都进⾏空间整理,空间整理期间STW
G1常⽤
-XX:+UG1GC
使⽤ G1 垃圾收集器
-XX:MaxGCPauMillis=200民事法庭
设置期望达到的最⼤GC停顿时间指标,JVM会尽⼒实现,但不保证达到
-XX:InitiatingHeapOccupancyPercent=45
启动并发GC周期时的堆内存占⽤百分⽐。G1之类的垃圾收集器基于整个整个堆的使⽤率触发并发GC周期,⽽不只是某年轻代或者⽼年代的内存的使⽤⽐.,值为 0 则表⽰”⼀直执⾏GC循环”。 默认值为 45
-XX:G1RervePercent=10
预留内存占堆内存⽐值,默认值是10,代表使⽤10%的堆内存为预留内存,当Survivor区域没有⾜够空间容纳新晋升对象时会尝试使⽤预留内存
经纬仪使用方法-XX:G1HeapRegionSize=2M
设置的 G1 Region区域的⼤⼩,当G1因为频繁分配巨型对象失败导致Full GC,可以尝试增⼤该参数

本文发布于:2023-06-04 11:13:57,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/859343.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:内存   设置   建议   空间   对象   打印   开启   时间
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图