JVM常用配置参数

本文深入探讨了Java中CMS垃圾回收器的多个关键参数,包括CMSInitiatingOccupancyFraction、UseCMSCompactAtFullCollection等,解析了它们如何影响垃圾回收的触发条件、内存碎片处理、并行标记以及重新标记阶段的优化策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

-XX:CMSInitiatingOccupancyFaction=92

这个参数是指在使用CMS收集器的情况下,老年代使用了指定阈值的内存时,出发FullGC.。如:
-XX:CMSInitiatingOccupancyFraction=80 ,CMS垃圾收集器,当老年代达到80%时,触发CMS垃圾回收。

-XX:+UseCMSCompactAtFullCollection

打开对年老代的压缩。可能会影响性能,但是可以消除碎片

-XX:CMSFullGCsBeforeCompaction=0

由于并发收集器不对内存空间进行压缩、整理,所以运行一段时间以后会产生"碎片",使得运行效率降低。此值设置运行多少次GC以后对内存空间进行压缩、整理。

 -XX:+CMSParallelInitialMarkEnabled

初始标记主要是标记GC Roots可达的老年代对象以及新生代引用的老年代对象。这个过程在jdk1.7时是单线程执行,在1.8以后是多线程并发执行(可以通过参数CMSParallelInitialMarkEnabled调整)。初始标记会暂停工作线程(Stop The World)。

-XX:+CMSScavengeBeforeRemark

开启或关闭在CMS重新标记阶段之前的清除(YGC)尝试
CMS并发标记阶段与用户线程并发进行,此阶段会产生已经被标记了的对象又发生变化的情况,若打开此开关,可在一定程度上降低CMS重新标记阶段对上述“又发生变化”对象的扫描时间,当然,“清除尝试”也会消耗一些时间
注,开启此开关并不会保证在标记阶段前一定会进行清除操作

-XX:+DisableExplicitGC

禁用System.gc()

-XX:+PrintGCDetails

显示是否打印GC详细信息

-Xloggc:gc.log

把相关日志信息记录到文件以便分析

-XX:+HeapDumpOnOutOfMemoryError  

在OOM的时候自动dump内存快照出来

-XX:HeapDumpPath=/usr/local/oom

把内存快照存放在哪里

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值