如何避免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。
之后重启服务器。