如何正常为4G分配Heap和Permgen内存?

时间:2012-10-14 07:57:45

标签: java heap-memory permgen

我有4G内存(64位)。目前,我在Eclipse IDE(JUNO)中使用默认内存设置。当我在JBoss 7.1部署应用程序时出现Out Of Memory错误。我想知道memory ratioheap memory的{​​{1}}?比方说,如果我为堆内存设置1G内存,permgen内存将是512M,只是示例。如果是这样,permgen将占堆内存的50%。你能为他们提供内存分配方式吗?

目前eclipse.ini

permgen memory

原因:

-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.200.v20120522-1813
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
512M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
512m
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Dhelp.lucene.tokenizer=standard
-Xms128m
-Xmx1024m

2 个答案:

答案 0 :(得分:2)

这取决于您所看到的典型内存使用情况。当你得到一个内存不足的错误时,应该说它是用于perm gen还是堆空间;相应调整。

编辑:如果它说你没有堆空间,那么你想要增加Xmx1024m。也许试试Xmx2g。

我还假设它是Eclipse,你看到了OutOfMemoryError?如果它实际上用于JBoss,那么eclipse.ini将无法帮助,因为当你部署到JBoss时,它将是一个不同的VM。在这种情况下,您需要增加$ JBOSS_HOME / bin / appclient.conf中的Xmx值

答案 1 :(得分:1)

  

我想知道堆内存和permgen内存的内存比率吗?

没有固定的比率。堆内存和permgen内存大小是使用不同的参数独立指定的。

我的建议是单独保留permgen设置...除非OOME消息告诉你已经用完了permgen内存。