论坛首页 Java企业应用论坛

Java参数-Xms和-Xmx的区别

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

如果是1.6的jdk, CMS回收算法有很大的增强
详见 http://java.sun.com/javase/6/docs/technotes/guides/vm/cms-6.html
0 请登录后投票
   发表时间:2007-09-05  
不单是垃圾收集,vm会根据空余内存,在xms和xmx之间调整内存,所以会耗时
0 请登录后投票
   发表时间:2007-09-05  
dennis_zane 写道
不同厂家的jdk垃圾回收算法不一样,不能一概而论

补充,并且同一jdk的gc策略也有多种,不能一概而论
另外,在sun的jdk下,Xms和Xmx设置一样,可以减轻伸缩堆大小带来的压力,但在ibm的jdk下面,设置为一样会增大堆碎片产生的几率,并且这种负面影响足以抵消前者产生的益处
0 请登录后投票
   发表时间:2008-04-30  
请教各位大大哪里可以查阅到有关JVM GC和多种JVM比较的资料 谢谢
0 请登录后投票
   发表时间:2008-04-30  
google
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics