1

我有一个非常消耗内存的程序,并考虑使用 -Xmx2048m 为 java jvm 分配更多的最大内存。但是在开始时我得到一个“无法为对象堆保留足够的空间”错误。

当尝试了几个值,发现我最大的价值是-Xmx1560m它开始了。但我喜欢分配 2GB。在我使用 -Xmx1560m 启动 java 进程后,我有 6GB 物理内存,Taskmanager 显示 3400MB 可用。

有谁知道为什么我不能分配 2GB ?

4

1 回答 1

1

32 位 Windows 将程序限制为大约 1.2 - 1.5 GB 的连续内存。即使您有 64 位操作系统但您正在为 32 位 JVM 模拟 32 位环境,此限制也适用。

避免此限制的方法是使用 64 位操作系统和 64 位 JVM,根据您购买的 Windows 的风格,限制要高得多。专业版限制为 192 GB。

于 2013-07-26T22:23:42.277 回答