Finalizer的单个实例占据堆的32%

问题描述 投票:0回答:1

我正在调试一个问题,客户发现我们的产品中Tomcat内存利用率很高(95%)。 hprof文件是使用我使用Eclipse MAT分析的jmap工具创建的。它给了两个记忆怀疑者-

问题嫌疑人1

由“”加载的类“ java.lang.ref.Finalizer”占用311,817,816(32.38%)字节。内存在由“”加载的“ java.lang.ref.Finalizer”的一个实例中累积。

关键字java.lang.ref.Finalizer


问题怀疑2

15个由“ sun.misc.Launcher $ AppClassLoader @ 0x6d4d40c20”加载的“ org.apache.cxf.jaxws.JaxWsClientProxy”实例占据343,320,384(35.65%)字节。

我检查了JaxWsClientProxy的代码和JaxWsClientProxy的统治者树,并确认未在其上调用finalize。而且JaxWsClientProxy没有任何自定义的finalize方法。

因此,我很难找到Finalizer的单个实例调用了哪个对象,以及为什么那个单个实例占用那么多堆空间?任何指针表示赞赏。

我正在调试一个问题,客户发现我们的产品中Tomcat内存利用率很高(95%)。已使用我使用Eclipse分析的jmap工具创建了hprof文件...

java memory-leaks heap-memory eclipse-mat
1个回答
0
投票

您是否正在使用使用Object.finalize()方法的类?

© www.soinside.com 2019 - 2024. All rights reserved.