32 位客户系统中的最大内存使用量

Maximum memory usage in a 32 bit guest system

我最近 运行 遇到了一个小问题:我正在 Java 使用大学 JADE 开发多代理模拟。很快,早期版本应该会呈现给经济界的一些人,因为他们对我们正在进行的研究感兴趣。该程序应该是 运行 在 32 位 Windows 系统上。似乎别无选择。现在,为了尽可能轻松地在多个系统上 运行 程序,我想将它与 32 位 VirtualBox VM 中的 MySQL 服务器(用于数据保存)捆绑在一起。虚拟机 运行ning Windows 7.

现在,将程序移至 VM 并 运行安装它就像一个魅力。然而,一旦程序需要超过大约 400mb 的 RAM,它就会停止分配新内存并开始交换,尽管来宾系统有足够的空闲 space。这使得它几乎不可用。在命令行上使用 -XMX 和 -XMS 似乎没有那么有效。

在我的主机系统(64 位,Windows 7)上它 运行 没有问题并分配了它需要的 space(大约 2.5 gb)。两个系统都运行使用最新版本的 Oracle Java(主机上为 64 位,来宾系统上为 32 位)。

对于有关此问题的任何想法,我将不胜感激。

我认为问题在于 JVM 需要一个连续的地址 space,虽然理论上有大约 3GB 的内存可用,但我无法获得,因为一些库是在随机位置加载的。唯一快速的解决方案似乎是切换到非 Windows 系统。谢谢丹尼尔森。

另见 Uri 在 Java maximum memory on Windows XP

上的回答