我正在使用Netbeans6.8中的Web应用程序开发并使用Jboss服务器来部署我的应用程序。我能够正确运行项目,但过了一段时间后我得到tgis错误
java.lang.OutOfMemoryError: PermGen space :
之后我必须重新启动JBoss服务器。有一段时间我需要重启我的Netbeans IDE 任何人都可以告诉我这个错误的原因以及如何避免这个
由于 罗汉
答案 0 :(得分:8)
添加此
-XX:+UseConcMarkSweepGC
-XX:+CMSPermGenSweepingEnabled
-XX:+CMSClassUnloadingEnabled
-XX:MaxPermSize=128m
答案 1 :(得分:2)
在堆中添加更多megs无法解决您的问题,您可以添加infinity&仍然用尽了邋code的代码。 不仅仅是JBoss的问题,我认为你的代码很可能内存泄漏,因为它在一段时间后就会耗尽堆。这是一个典型的场景。 我建议您使用JVisualVM(内置到SUN JDK6等)来分析您的代码...看看堆和&看看哪个对象的实例最多,总大小明智。 一旦你解决了这些代码问题,我不认为你想为你的堆添加更多的空间。
RGDS -ksm
答案 2 :(得分:1)
将-XXMaxPermSize=256M
添加到您的应用启动命令
答案 3 :(得分:1)
不时弹出您的服务器。您可能不喜欢热部署的这种限制,但问题是,当您重新部署太多次时,最终会再次达到perm gen上限。
每隔n次重新部署就反弹服务器,其中n< #导致OOM错误。
答案 4 :(得分:0)
在VM中使用此命令: -
增加堆大小:
-Xms256m -Xmx512m -XX:PermSize = 64M -XX:MaxPermSize = 1000M
应将这些值提供给VM。
之后重新启动服务器。