我有一个程序非常消耗内存,并考虑使用-Xmx2048m为Java jvm分配更多的最大内存。但是启动时出现“无法为对象堆保留足够的空间”错误。
当尝试多个值时,发现我最大的价值就是-Xmx1560m
它,它开始了。但是我喜欢分配2GB。我使用-Xmx1560m启动Java进程后,物理内存为6GB,Taskmanager显示3400MB可用。
有人知道为什么我不能分配2GB吗?
32位Windows将程序限制为大约1.2-1.5 GB的连续内存。即使您具有64位操作系统,但您正在为32位JVM模拟32位环境,此限制也适用。
避免此限制的方法是使用64位操作系统和64位JVM,并且该限制要高得多,具体取决于您购买的Windows的风格。专业版限制为192 GB。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句