当前位置:  开发笔记 > 编程语言 > 正文

如何防止Netbeans中的PermGen空间错误?

如何解决《如何防止Netbeans中的PermGen空间错误?》经验,为你挑选了1个好方法。

每隔15-30分钟,Netbeans会显示一个" java.lang.OutOfMemoryError: PermGen space".从我从谷歌那里学到的东西,这似乎与一般的类加载器泄漏或内存泄漏有关.

不幸的是,我发现的所有建议都与应用程序服务器有关,我不知道它们是否适用于Netbeans.(我甚至不确定它是同一个问题)

这是我申请中的问题吗?我怎样才能找到来源?



1> Łukasz Bowni..:

这是因为恒定的类加载.

Java将类字节代码和所有常量(例如字符串常量)存储在永久堆中,默认情况下不是垃圾收集(这在大多数情况下都有意义,因为类在应用程序的生命周期中只加载一次).

在通常在整个生命周期内加载类的应用程序中:

热重新部署期间的Web和应用程序服务器;

IDE在运行已开发的应用程序时(每次在Netbeans中运行Run按钮或eclipse时,它会将应用程序的类加载为新的);

等等这种行为是不恰当的,因为最终堆满了.

您需要打开永久堆垃圾收集以防止此错误.

我用的是选项

-XX:MaxPermSize=256M
-XX:+CMSClassUnloadingEnabled
-XX:+CMSPermGenSweepingEnabled

(停止了我的eclipse 3.4投掷" java.lang.OutOfMemoryError: PermGen space"所以它也应该与netbeans一起工作).

编辑:请注意,对于Netbeans,您可以在以下位置设置这些选项:[Netbeans installation]\etc\netbeans.conf 您应该将这些选项作为 前缀-J并添加它们netbeans_default_options(netbeans.conf有关更多信息,请参阅注释).

推荐阅读
个性2402852463
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有