当我尝试将-Xms
和-Xmx
值设置为1gb以上时,我收到错误消息:
VM初始化期间发生错误
我的电脑有8GB的RAM。
我需要在内存中保存和操作大量数据。
答案 0 :(得分:4)
32位JVM的最大堆大小最多为4GB - 在某些系统中由于各种技术原因(例如需要连续内存)而减少。尝试使用64位版本,假设您使用的是64位计算机。
原因是你可以用32位指向的最大地址数是2 ^ 32,即4GB。这个理论上的最大值永远不会被用户真正访问,因为JVM需要Klass
文件(代码的内部表示)和其他东西。
答案 1 :(得分:0)
如果您使用的是64位操作系统,那么真正的解决方案是添加-d64以强制它以64位运行,因此分配4GB。
答案 2 :(得分:0)
我肯定会建议你通过文章
除了Ram之外,xmx参数还依赖于os,jvm bit等参数。
还建议你通过统计来确定有多少可用内存。请参阅http://viralpatel.net/blogs/getting-jvm-heap-size-used-memory-total-memory-using-java-runtime/以确定使用的物理量和可用记忆量。
为了获得最佳利用率,它应该是64位os和64位bit vm
在32位版本的Windows上,应用程序可以使用4千兆字节(GB)的虚拟地址空间。虚拟地址空间被划分,以便应用程序可以使用2 GB,而另一个2 GB仅可用于系统。请参阅http://msdn.microsoft.com/en-us/library/Aa366521
所以请确保你有足够的内存(无论你提到的反对params xms和xmx)与我上面提到的程序
答案 3 :(得分:0)
恕我直言,这是同样的问题,问题略有不同..
Eclipse memory allocation problem
如您所见,Java Runtime Environment在Java控制面板中设置。尝试在运行时参数列中添加运行时参数,例如-Xmx3072m
。
或许您可以查看这篇文章..
How to Increase Java Memory in Windows 7
希望它有助于解决问题...
此致 伊万