幾次重新部署應用程序與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找出如何找到這些內存泄漏。 –