JVM调优-大对象分配

每当应用程序使用G1收集算法时,GC时对大对象的分配可能会影响应用程序的性能(强调:大对象分配是指大于region大小的50%对象的分配)。

频繁地大对象分配会引发一下GC性能问题:

  • 如果region当中包含大对象,剩余regiong空间将不再被使用,如果对象只是刚刚超过region的50%多一点,那么就会造成很大的空间浪费。
  • 对于大对象的收集,G1并不像常规那样处理,JAVA1.8u40之前,大对象的回收只能在Full GC事件期间完成,Hotspot JVM 最新版本会在清除阶段标记周期结束时释放大区域,对于轿新的JVM来说,问题的影响已经显著下降。

要检查应用是否存在大对象空间需要制定JVM参数:

java -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintReferenceGC -XX:+UseG1GC -XX:+PrintAdaptiveSizePolicy -Xmx128m MyClass

G1出现大对象的日志:

 0.106: [G1Ergonomics (Concurrent Cycles) request concurrent cycle initiation, reason: occupancy higher than threshold, occupancy: 60817408 bytes, allocation request: 1048592 bytes, threshold: 60397965 bytes (45.00 %), source: conc
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值