相关疑难解决方法(0)

启动JVM时,Xms和Xmx参数是什么?

请解释JVM中的使用XmsXmx参数.它们的默认值是什么?

java parameters jvm memory-management

911
推荐指数
5
解决办法
172万
查看次数

为什么(Sun)JVM具有固定的内存使用上限(-Xmx)?

本着Java的问题:为什么MaxPermSize存在?,我想问一下为什么Sun JVM对其内存分配池的大小使用固定的上限.

默认值是物理RAM的1/4(上限和下限); 因此,如果您有一个需要内存的应用程序,您必须手动更改限制(参数-Xmx),否则您的应用程序将表现不佳,甚至可能会因OutOfMemoryError崩溃.

为什么这个固定限制甚至存在?为什么JVM不会根据需要分配内存,就像本机程序在大多数操作系统上一样?

这将解决Java软件的一大类常见问题(只需谷歌通过设置-Xmx来查看解决问题的网上有多少提示).

编辑:

一些答案指出,这将保护系统的其余部分免受Java程序的影响而导致内存泄漏; 没有限制,这会耗尽整个系统耗尽所有内存.这是事实,但对于任何其他程序同样如此,现代操作系统已经允许您限制程序的最大内存(Linux ulimit,Windows"作业对象").所以这并没有真正回答这个问题,即"为什么JVM与大多数其他程序/运行时环境不同?".

java memory jvm

45
推荐指数
3
解决办法
9914
查看次数

标签 统计

java ×2

jvm ×2

memory ×1

memory-management ×1

parameters ×1