0

我得到java.lang.OutOfMemoryError: PermGen space,在分析hprof之后,我发现

One instance of "org.apache.jasper.compiler.JspRuntimeContext" loaded by   
"org.jboss.mx.loading.UnifiedClassLoader3 @ 0x772dd7f80" 
occupies 8,30,89,712 (29.32%) bytes. 
The memory is accumulated in one instance of 
"java.util.concurrent.ConcurrentHashMap$Segment[]" loaded by
"<system class loader>"

使用 Jboss 服务器。

找到一个类似的: JVM HeapDump:内存是在“java.util.concurrent.ConcurrentHashMap$Segment (但与tomcat有关)的一个实例中积累的

这个问题的原因/解决方案是什么?告诉我是否应该提供更多信息。

4

2 回答 2

1

通过使用 Eclipse IDE,您可以更改 VM 参数

double click on the server > open Lunch Configuration > Arguments > VM Arguments

并在您的 VM Arguments 字段中附加以下两行

-Xms256m -Xmx1024m -XX:+DisableExplicitGC -Dcom.sun.management.jmxremote
-XX:PermSize=256m -XX:MaxPermSize=512m

它一定会解决你的问题

于 2014-06-17T10:48:22.183 回答
1

如果您在辅助 Eclipse 应用程序中遇到问题错误,则在 ini 中添加 -XX:MaxPermSize=512m 将无济于事。您需要进入调试或运行配置-> 参数并将该部分添加到 VM 参数中。我还增加了其他内存限制,所以:

-Dosgi.requiredJavaVersion=1.5 -Xms120m -Xmx2048m -XX:MaxPermSize=1024m

于 2014-06-17T10:55:17.850 回答