java gc 触发条件_java-触发一个主要的GC周期,老一代必须充满...

并发标记扫描

假设您使用并发标记扫描收集器(例如-XX:UseConcMarkSweepGC),则默认情况下,它会在OldGen达到70%时开始并发收集.但这可通过CMSInitiatingOccupancyFraction进行调整,例如:

-XX:CMSInitiatingOccupancyFraction=42

这将以42%的默认值开始70%的并发收集

请注意,CMSInitiatingOccupancyFraction仅对第一个集合有效.要“永久启用”,请添加UseCMSInitiatingOccupancyOnly:

-XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=42

最大堆自由率

您还可以查看MaxHeapFreeRatio,它是GC之后为避免收缩而可用的最大堆百分比,默认情况下,该百分比设置为70%,但您也可以更改该值:

-XX:MaxHeapFreeRatio=42

触底

但是在更改任何参数之前,最好了解这种“高垃圾回收利用率”的原因:

>如果需要如此频繁地收集,为何将它带到OldGen?

>您是否正在捕获流数据?

>堆大小是否太小而无法解决问题?

>在堆外存储此特定数据是否有意义?

>等.

由于通常JVM非常擅长于知道何时收集,而且只会变得越来越好.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值