我正在运行具有以下属性的服务器:
Windows Server 2008 R2 Standard-64位4GB RAM
我正在尝试将应用程序的堆大小设置为3gb。我正在使用-Xmx3G -Xms3G标志。使用标志运行会导致以下错误:
VM初始化期间发生错误。无法为对象堆保留足够的空间。无法创建Java虚拟机。
我一直在玩设置,看我的天花板是多少,发现1568是我的天花板。我想念什么?
Java在启动时需要连续的虚拟内存。在Windows上,32位应用程序在32位仿真环境中运行,因此与32位OS相比,您获得的连续内存不会更多。cf在Solaris上,您可以获得超过3 GB的32位Java虚拟内存。
我建议您使用Java的64位版本,因为这将利用您拥有的所有内存。您仍然需要有可用的内存,但是较大的地址空间不会受到碎片的影响。
顺便说一句:堆空间只是所用内存的一部分,您需要用于共享库的内存,直接内存,GUI组件等。