如何避免java.lang.OutOfMemoryError:Netbeans中的PermGen空间

我正在使用Netbeans6.8中的Web应用程序开发并使用Jboss服务器来部署我的应用程序。 我能够正确运行项目,但一段时间后我得到tgis错误

java.lang.OutOfMemoryError: PermGen space : 

之后我必须重启我的JBoss服务器。 有时我需要重新启动我的Netbeans IDE任何人都可以告诉我这个错误的原因以及如何避免这种情况

谢谢罗汉

加上这个

 -XX:+UseConcMarkSweepGC -XX:+CMSPermGenSweepingEnabled -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=128m 

向堆中添加更多megs将无法解决您的问题,您可以添加无限并仍然耗尽粗糙的代码。 不仅仅是JBoss的问题,我认为你的代码很可能有内存泄漏,因为它在一段时间后用完了堆。 这是一个典型的场景。 我建议您使用JVisualVM(内置到SUN JDK6等)来分析您的代码…查看堆并查看哪些对象具有最多实例,总大小明智。 一旦你解决了这些代码问题,我不认为你想要为你的堆添加更多空间。

rgds -ksm

-XXMaxPermSize=256M添加到应用程序启动命令中

不时弹出您的服务器。 您可能不喜欢热部署的这种限制,但问题是,当您重新部署太多次时,最终会再次达到perm gen上限。

只需在每n次重新部署时退回服务器,其中n <#导致OOM错误。

在VM中使用此命令: –

增加堆大小:

-Xms256m -Xmx512m -XX:PermSize = 64M -XX:MaxPermSize = 1000M

应将这些值提供给VM。

之后重启服务器。