几次重新部署应用程序与PermGen错误崩溃后。我知道随着permgen大小的增加变通办法。但我试图揭示泄漏的原因。在重新部署之后,我使用jvisualvm创建堆转储并搜索WebAppClassLoader的实例。正如预期的那样,还有一个没有GC-ed。向platformMBeanServer(MangementFactory类型)显示最近的GC根点。所以问题是我能用它做什么?网络应用程序,tomcat + hibernate + Guice中的内存泄露
和一些额外的信息。我的jdbc驱动程序jar位于bin目录中的tomcat和.dll文件的lib目录中。当我评论hibernate的sessionFactory创建 - 问题消失。会话工厂在servlet过滤器的init方法中创建,并在destroy方法中关闭。 Hibernate使用c3p0连接池。
您需要关注GC根源。他们是否将你指向特定的对象,或者你只是在猜测?尝试阅读http://people.apache.org/~markt/presentations/2010-11-04-Memory-Leaks-60mins.pdf找出如何找到这些内存泄漏。 –