Java参数-Xms和-Xmx的区别

  java内存堆栈不够用时我们会寻求java参数-Xms和-Xmx的帮助,网上也有许多前辈给出了例子,但很多人喜欢把-Xms和-Xmx的值设置成一样的,甚至我还见过有吧-Xms设的比-Xmx还要大(-Xms是最小值,-Xmx是最大值)。
    一开始我也不知道这两个值设成一样会有什么问题,但是我在作项目 http://youmonitor.us/ 时发现,当我把-Xms和-Xmx设置成一样时,java会不断地吃内存。起先不知道怎么回事,经过测试后发现,原来java的垃圾回收器在内存使用达到-Xms值的时候才会开始回收,如果两个值一样,那就意味着,只有当java使用完所有内存时才会回收垃圾,这样一来内存当然不停的涨。希望我的教训对各位有所帮助。
一般设置为
-Xms128m
-Xmx512m 
以前只知道最大值于最小值,今天知道最小值于垃圾回收的原理了。受教了。 
不同厂家的jdk垃圾回收算法不一样,不能一概而论 
针对不同应用切换到最合适的GC算法好了.

如果是1.6的jdk, CMS回收算法有很大的增强
详见 http://java.sun.com/javase/6/docs/technotes/guides/vm/cms-6.html 
不单是垃圾收集,vm会根据空余内存,在xms和xmx之间调整内存,所以会耗时 
补充,并且同一jdk的gc策略也有多种,不能一概而论
另外,在sun的jdk下,Xms和Xmx设置一样,可以减轻伸缩堆大小带来的压力,但在ibm的jdk下面,设置为一样会增大堆碎片产生的几率,并且这种负面影响足以抵消前者产生的益处  






来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/223653/viewspace-1281858/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/223653/viewspace-1281858/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值