如何在没有outofmemory异常的情况下设置最大xmx和xms值

时间:2015-12-31 15:42:16

标签: java jvm

我正在尝试运行一些.jar文件,但我收到了以下错误。系统有20 gb的ram,我的Xms和Xmx值是-Xms2048m -Xmx4096m

这些值是否太大或是否有其他因素导致此错误?

java.lang.OutOfMemoryError: Java heap space

编辑:

java -jar -Xms2048m -Xmx4096m /Filereadertest.jar

我正在使用java 1.7.51

Java HotSpot(TM)64位服务器VM

2 个答案:

答案 0 :(得分:2)

  

这些值是否太大或是否有其他因素导致此错误?

服务器JVM的默认值是主内存的1/4或5 GB,因此通过设置它实际上降低最大值。

您可以将其设置为主内存的80%,例如-Xmx16G

答案 1 :(得分:0)

与JRE版本和体系结构一起,每个进程的堆空间也取决于正在使用的操作系统。

例如,Windows 32位允许每个进程最多2 GB内存,其中还包括堆栈,库和其他内容的大小。所以在实践中,我们通常会得到1.25 GB的内存。

看看: Oracle's Guidelines for Heap Space Sizing