JVM中-Xms和-Xmx设置相同的好处

概念解释:
-Xms:
初始堆大小 默认物理内存的 1/64(小于1GB)
空余堆大小小于 40% 时,JVM就会增大堆直到 -Xmx 的最大限制

-Xmx-Xmx 最大堆大小 默认物理内存的 1/4(小于1GB)
空余堆大小大于 70% 时,JVM就会减少堆直到 -Xms 的最小限制


JVM垃圾回收的不足:
当堆内存使用情况变化时,并不是单纯的扩大和缩小堆内存就完事了。在此之前还会执行GC(垃圾回收)操作。
如果 -Xms 起初值设置的比较小,那么就会频繁触发GC操作。当GC操作无法释放更多内存时,才会进行内存的扩充。
我们都知道GC操作是需要耗时的,而且Full GC会引起“Stop the World”,也就是说会引起线程停止,不可避免就会引起性能问题。


相同值的好处:
面对上面的问题,为了避免在生产环境由于heap内存扩大或缩小导致应用停顿,降低延迟,
同时避免每次垃圾回收完成后JVM重新分配内存。所以,-Xmx-Xms一般都是设置相等的。

当然,如果生产系统上线前有一段预热时间的话,也可以不设置相等。对于需要高吞吐量的应用来说,可以不在乎这种停顿,
比如一些后台的应用之类,那么内存可以适当调大一些。(停顿时间越长,吞吐量反而越大),需要根据具体情况权衡。

把两者设置为一致,是为了避免频繁扩容和GC释放堆内存造成的系统开销/压力


注意事项:
其实虽然设置为相同值有很多好处,但也会有一些不足。比如,如果两个值一样,会减少GC的操作,
也意味着只有当JVM即将使用完时才会进行回收,此前内存会不停的增长。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值