内存交换区大小很重要

    在sun的内存模型中,一般会有这么几个区:

 

    eden区满了之后,会触发一次Young GC,Young GC会将eden区,S0(或S1)释放不掉的对象,放入另外一个空闲的交换区S1(或S0)。即触发一次S0与S1的交换。如果一次Young GC后空闲的交换区不足以放下全部的活的对象,剩余的对象会被直接丢进old区,所以关注每次Young GC后old区内存的增长,以及交换区的使用率至关重要。交换区设置的过小,或者虚拟机动态调整导致交换区长时间过小,都会造成old 区内存的持续增长,直至频繁的Full GC。sun建议,交换区的使用最好不要超过50%。

     那如何限制交换区的大小呢,sun提供了如下的参数进行配置:

 

    -XX:SurvivorRatio=6  -XX:-UseAdaptiveSizePolicy

     其中 -XX:SurvivorRatio=6 设置eden:survivor的比例为6:1,默认值为8:1,-XX:-UseAdaptiveSizePolicy 禁止jvm对 eden:S0:S1 进行调整

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值