3

当我尝试设置超过 1gb 的值时,出现错误-Xms-Xmx

初始化虚拟机时出错

我的电脑有 8GB 的​​ RAM。

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

4

4 回答 4

4

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

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

另请参阅此问题

于 2013-06-17T16:05:51.557 回答
0

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

于 2013-06-17T16:11:04.877 回答
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 位操作系统和 64 位 vm

在 32 位版本的 Windows 上,应用程序有 4 GB 的可用虚拟地址空间。虚拟地址空间被划分,以便应用程序可以使用 2-GB,而其他 2-GB 仅供系统使用。请参阅http://msdn.microsoft.com/en-us/library/Aa366521

因此,请确保您有足够的内存(无论您提到的参数 xms 和 xmx 是什么)与我上面提到的程序

于 2013-06-17T16:17:53.917 回答
0

恕我直言,这是相同的问题,但问题略有不同..

Eclipse内存分配问题

如您所见,Java 运行时环境是在 Java 控制面板中设置的。尝试添加运行时参数,例如-Xmx3072m在运行时参数的列中。

或者你可以看看这篇文章..

如何在 Windows 7 中增加 Java 内存

希望对解决问题有帮助...

问候,伊万

于 2013-11-25T07:21:34.403 回答