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

时间:2010-08-19 12:39:05

标签: java memory netbeans jboss

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

java.lang.OutOfMemoryError: PermGen space :

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

由于 罗汉

5 个答案:

答案 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。

之后重新启动服务器。