停止我的网络应用程序后,大量的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