我的堆直方图告诉我我正在使用大量的char数组([C],字节数组([B],哈希节点和锁。)
什么工具会告诉我谁拥有'这些字符数组,字节数组,哈希节点和锁?我期待“所有权”非常模糊,那么用于估算它的一些方法和工具是什么?
到目前为止,我一直在从char数组开始关注visualvm中的反向指针,但这只能给我一个定性的问题。我想要数字。
我的一个想法是向后跟随N(一些常量)指针并按路径分组,总结#instances和bytes。例如,如果我要从字符数组向后跳两个指针,我可能会发现贪食漏洞:
MB path
1000 char[] <- String <- LeakingBusinessObject
1 char[] <- String <- OkayBusinessObject
答案 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:
Disclaimer: My company develops JProfiler