【发布时间】:2013-08-20 21:44:51
【问题描述】:
我安装了 32 位的 JRE v1.6。当我尝试按如下方式运行程序时:
java -Xms1024m -Xmx2048m net.analysis.MyProg
我看到显示以下消息:
Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine
据我所知,32 位 JVM 允许的最大堆为 2 GB。在运行我的代码的计算机上有 131061 MB 的物理内存(使用 Window 的任务管理器,128 GB 的 RAM)。
有人知道我在这里做错了什么吗?
【问题讨论】:
-
AFAIK - 堆空间需要是连续的。即使他们你可能有足够的空闲内存,它也被碎片化了......
-
您使用的是什么版本的 Windows。在许多 32 位 Windows 上,限制为 3GB
-
WTF 128GB 内存 - 羡慕
-
运行代码的服务器是 Windows Server 2008 R2 Enterprise 64 位。其他感兴趣的规格:Intel Xeon CPU X7560 @ 2.27GHz(4 个处理器,但任务管理器显示 16x4=32 个内核)。
-
如果您运行的是 32 位 Windows 应用程序,您将受限于 Windows XP 仿真功能。不管你有多少内存,32 位 Windows 将你限制为 1.2 - 1.4 GB 的堆。你真的应该使用 64 位 JVM。
标签: java memory-management jvm jvm-arguments