如何估计内存泄漏的低级对象的“所有者”

时间:2016-10-20 15:20:54

标签: java memory-leaks

我的堆直方图告诉我我正在使用大量的char数组([C],字节数组([B],哈希节点和锁。)

  

什么工具会告诉我谁拥有'这些字符数组,字节数组,哈希节点和锁?我期待“所有权”非常模糊,那么用于估算它的一些方法和工具是什么?

到目前为止,我一直在从char数组开始关注visualvm中的反向指针,但这只能给我一个定性的问题。我想要数字。

我的一个想法是向后跟随N(一些常量)指针并按路径分组,总结#instances和bytes。例如,如果我要从字符数组向后跳两个指针,我可能会发现贪食漏洞:

MB        path
1000      char[] <- String <- LeakingBusinessObject
1         char[] <- String <- OkayBusinessObject

1 个答案:

答案 0 :(得分:1)

The heap walker in JProfiler has a view that shows cumulated incoming references. Below you see chains of incoming references for all int[] arrays on the heap:

enter image description here

Disclaimer: My company develops JProfiler