<分区>
如果我尝试使用 -Xmx1397m 命令行参数运行超过 1397mb 的 Java,它无法初始化。这是为什么?
即:
"
java path\java.exe"-Xmx1397m
-> 工作java path\java.exe"-Xmx1398m
->崩溃
机器几乎有 100GB 未使用的内存,我正在运行 32 位 java
<分区>
如果我尝试使用 -Xmx1397m 命令行参数运行超过 1397mb 的 Java,它无法初始化。这是为什么?
即:
"java path\java.exe"-Xmx1397m
-> 工作
java path\java.exe"-Xmx1398m
->崩溃
机器几乎有 100GB 未使用的内存,我正在运行 32 位 java
最佳答案
这是 Windows 上 32 位 java 的一个已知问题,由于地址空间碎片问题,您无法获得预期的 3 GB 堆。 HotSpot JVM 的堆需要一个连续地址 block ,一些永久映射到用户空间的共享 DLL 正在碎片化空间。
关于java - 无法分配超过 1397mb 的 JVM 堆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15526571/