2013-03-20 28 views
2

如果我尝试使用-Xmx1397m命令行参数运行超过1397mb的Java,它将无法初始化。为什么是这样?无法分配超过1397mb的JVM堆栈

IE:

  • java path\java.exe" -Xmx1397m - >工作

  • java path\java.exe" -Xmx1398m - >崩溃

该机几乎未使用的RAM 100GB的,我运行32位的Java

+1

请参阅[这里](http://stackoverflow.com/questions/987219/max-amount-of-memory-per-java-process-in-windows/987576#987576)。您可能应该考虑转移到64位JVM。 – 2013-03-20 14:39:33

回答

1

这是Windows上32位java的已知问题t由于地址空间碎片问题,您无法获得预期的3 GB堆。 HotSpot JVM需要一个连续的地址块作为其堆,并且一些永久映射到用户空间的共享DLL正在分割空间。