JVM启动参数-Xmx的默认值是多少? 财富值6

2016-10-21 16:28发布

1:JVM启动的时候,如果我不加-Xmx参数,可已分配给堆的最大内存是多少?
2:JDK1.5和JDK1.6等不同版本,Xmx参数的默认值是一样的吗?有什么区别?
3:xmx默认值与操作系统类型、位数的关系是怎样的?
4:xmx默认值与-server参数有关系吗?

谷歌了半天,也没找到答案,求大神解答。

HOTSPOT虚拟机,谢谢。

请给出官方文档或者原始出处,多谢。

实际问题:
一个JAVA程序,有内存突增的特点,大约突增到400M左右。WIN7-64位PC,JDK1.6,8G内存,不设置xmx参数,则报堆溢出。设置之后没问题。网上说默认是物理内存四分之一,感觉不太像,特请教不设置的话,默认是多少?为什么报堆溢出错误?

3条回答
buzbuzcreek - 这个人很懒,什么都没留下
1楼 · 2016-10-21 16:47.采纳回答

Oracle的官方文档没找到,你试试SO回答上的说法把。
http://stackoverflow.com/ques...

mishen - whatsns产品经理
2楼-- · 2016-10-21 16:38

回答你的实际问题: 只有运行在 server 模式下的时候才是 min(1G, 物理内存的四分之一) 所以依你的情况应该是 1G 的样子 当然别忘了要用 java -server <类名> 来启动你的程序 ..

你也可以在程序里试试打印 Runtime.getRuntime().maxMemory() 的值 看看是多少

一周热门 更多>