停止我的網絡應用程序後,大量的PermGen未被釋放。罪魁禍首似乎是WebappClassLoader(在Tomcat中,但它也發生在Jetty中),它由一堆其他對象的引用保存在內存中。下圖顯示了引用WebappClassLoader的對象以及引用它們的內容等等。是否可以阻止java.util.logging導致內存泄漏?
其中一個緊貼對象似乎是net.lag.logging.Level$INFO$
一個實例中,向其中一個參考存儲在靜態known
陣列中java.util.logging.Level
。
看來,java.util.logging.Level
保持對其自身的所有實例的靜態引用。壞,討厭java.util.logging.Level
!我能做些什麼嗎? java.util.logging框架被第三方庫使用,所以我認爲我沒有選擇不使用它。
單位是什麼字節?日誌記錄佔用8個字節,你擔心它嗎? – bwawok 2010-10-19 02:21:03
是的,它是字節,不,我不關心8字節。我關心的是,對WebappClassLoader的引用會阻止它被垃圾收集;它佔了大約10兆字節。 – David 2010-10-19 02:23:17
您正在使用哪種JVM? – 2010-10-19 02:31:47