我总是能够为在32位Windows XP(Java 1.4,1.5和1.6)上运行的Java SE分配1400兆字节.
java -Xmx1400m ...
Run Code Online (Sandbox Code Playgroud)
今天我在使用Java 1.5_16和1.6.0_07的新Windows XP机器上尝试了相同的选项并得到错误:
Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine.
Run Code Online (Sandbox Code Playgroud)
通过反复试验,我可以在这台机器上分配1200兆字节.
任何想法为什么一台机器将允许1400和另一台只有1200?
编辑:该机器有4GB的RAM,大约3.5GB,Windows可以识别.
在Windows上,在正常情况下,32位进程只能访问2GB的RAM(或者带有boot.ini文件中的特殊开关的3GB).在64位操作系统上运行32位进程时,可用内存量是多少?是否有任何特殊的开关或设置可以改变这种情况?