经过几天的调试后,我成功地在Tomcat 6.0.32上成功重新部署了中型到大型Web应用程序,没有任何PermGen
泄漏。我看到填充后PermGen
掉落,并且类加载器被垃圾收集。
经过多次欢欣之后,我试图在我们的开发环境中重新部署应用程序而不会泄漏,该开发环境由Maven和Jetty插件组成。
不幸的是,我似乎遇到了服务器限制,如下面的屏幕截图所示
Yourkit snapshot http://img811.imageshack.us/img811/7320/jettyclassloaderbeanelr.png
Jetty请求线程强烈引用BeanElResolver
,而PermGen
依次对我的webapp中的多个类进行强引用。
我没有找到关于如何刷新此信息的参考。
如何从我的应用程序中删除此最终-XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled
泄漏?
更新:
我已经完成了以下操作来解决问题,但没有运气:
更新2:
答案 0 :(得分:2)
这是EL实现中的一个实际错误,它在最新的Jetty版本中得到了解决。
版本7.5.0一旦发布,将包含修复程序。
答案 1 :(得分:0)
不能直接回答您的问题,但您可以考虑在开发中使用JRebel。使用JRebel,您大多数时间没有进行重新部署,从而避免了permgen泄漏和重新部署的浪费时间。它对我来说非常好。