如何将JVM的内存大小增加到1GB以上

时间:2013-06-17 16:02:00

标签: java memory jvm jvm-arguments

当我尝试将-Xms-Xmx值设置为1gb以上时,我收到错误消息:

  

VM初始化期间发生错误

我的电脑有8GB的RAM。

我需要在内存中保存和操作大量数据。

4 个答案:

答案 0 :(得分:4)

32位JVM的最大堆大小最多为4GB - 在某些系统中由于各种技术原因(例如需要连续内存)而减少。尝试使用64位版本,假设您使用的是64位计算机。

原因是你可以用32位指向的最大地址数是2 ^ 32,即4GB。这个理论上的最大值永远不会被用户真正访问,因为JVM需要Klass文件(代码的内部表示)和其他东西。

另见this question

答案 1 :(得分:0)

如果您使用的是64位操作系统,那么真正的解决方案是添加-d64以强制它以64位运行,因此分配4GB。

答案 2 :(得分:0)

我肯定会建议你通过文章

http://javarevisited.blogspot.in/2013/04/what-is-maximum-heap-size-for-32-bit-64-JVM-Java-memory.html

除了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

希望它有助于解决问题...

此致 伊万