冲压尺寸为16GB的windows8机器将支持多少maxheapsize?

时间:2014-11-18 11:49:33

标签: java windows-8

我已将堆大小发送到-Xmx512m -XX:MaxPermSize = 14336m但仍然出现内存不足错误。 你能帮我解释一下我们在windows8机器上设置多少堆内存(Ram大小16GB)

3 个答案:

答案 0 :(得分:0)

与物理ram +虚拟内存一样多。请参阅下面的虚拟内存。 不要忘记所有这些内存都在您的进程之间共享,因此您应该在内存耗尽的进程工作时关闭所有不必要的应用程序。

查看您的虚拟内存信息。 系统 - >高级系统设置 - >高级选项卡 有关详细信息,请参阅以下Microsoft帮助。 Change the size of virtual memory

virtual memory

答案 1 :(得分:0)

正如This question here中所讨论的, MaxPermSize 参数是

  

永久生成堆的最大大小,一个保存类的字节代码并与包含实际实例的对象堆保持分离的堆

标志 Xmx 负责创建实例的内存。现在我不明白你的应用程序,但我个人认为你不需要~14GB的字节码缓存在里面。尝试可能更改最大堆大小 Xmx )而不是perm大小,看看结果如何,因为最可能的原因是你创建的实例太多了你分配的记忆。

答案 2 :(得分:0)

你似乎误解了什么堆和permgen空间真正做了什么: Perm space vs Heap space

您需要增加堆大小:例如的 -Xmx1g 即可。 MaxPermSize 应限制在300米左右。您使用的价值如14G太高,恕我直言,没有实际用途。

注意您的Java VM。 32Bit JavaVM只能解决大约1.2G(堆和perm gen的总和),而64Bit Java可以处理更大的堆,例如8克。

如果你正在查看声纳文件:http://docs.codehaus.org/display/SONAR/Analyzing+with+SonarQube+Runner你看,他们提到了128米的烫发尺寸。