我们可以使用-Xmx为Java VM设置Java堆空间的最大可能内存。 -Xmx1g。

如果优先考虑不会出现java OutOfMemoryError堆空间,为什么要将-Xmx设置为低于某个值?如果最大值较低,VM是否会更有效地管理内存?

我经常遇到OutOfMemoryError,并且将-Xmx设置得很高。问题是,最终我也用尽了物理内存-仅靠高Xmx是不够的。我当前的解决方案是关闭我的内存消耗大的应用程序,这很不方便,因为它减慢了开发和测试的速度。

最佳答案

我的主要理由是确保JVM内存使用量适合可用的RAM。假设我有3个运行8g内存的tomcat实例。我可能会将每个vm的mX设置为2g左右,并为os和其他设置2g。

如果JVM被迫进行交换,则在垃圾收集器浏览对象树时,它会带来巨大的性能问题。

关于java - 为Java堆空间设置低Xmx的好处是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17101406/

10-10 02:30