最近,在使用 Netbeans 6.8 开发 JSF Web 应用程序时,我不断收到 PermGen:内存不足错误。我还注意到,正如论坛上的一些人所建议的那样,这与热交换代码无关;每当我重新部署代码时,我通常会重新启动本地 Web 服务器 Tomcat 6.0。这曾经偶尔发生在我身上,但最近,它一直在发生。我通常不能在它崩溃之前超过两分钟。
我对这个问题的重要观察是,它似乎只在运行调试器时发生。如果我定期启动服务器,它将无限期地运行。一旦我在调试模式下运行,就会出现这个问题。
到目前为止,我已经尝试了所有在 Tomcat 中增加 Java 的 JAVA_OPT 内存设置的技巧;我尝试在 netbeans.conf 中增加 Netbeans 的可用内存。仍然没有运气。如果您想查看我所做的特定配置更改,我也可以发布。
我还读到这可能是 Java 内存泄漏的结果。我试过运行 Netbean 的分析器,但在我做任何真正有用的事情之前它通常也会崩溃。此外,当它运行时,所有具有荒谬世代的对象分配都是 Java 库或原语中的东西—— char[]s 是应用程序最大的内存消耗,例如,具有最大世代。
我真的很想知道以前是否有人遇到过类似的问题,如果有,他们是如何解决的。这开始严重阻碍我完成工作的能力。
谢谢你的帮助。