2016-10-20 6 views
2

ヒープヒストグラムでは、たくさんのchar配列([C]、バイト配列([B)、ハッシュノード、ロック)を使用しています。メモリリークの下位オブジェクトの '所有者'を近似する方法

これらの文字配列、バイト配列、ハッシュノード、およびロックを誰が所有しているのか教えてくれるツールはありますか?私は '所有権'が非常にあいまいであると予想しているので、それを近似するために使用されるいくつかの方法とツールはありますか?

これまでのところ、私はchar配列からvisualvmの逆ポインタをたどってきましたが、これは私には問題の定性的な感じが与えられます。私は数字が欲しい。

私が持っていた考えの1つは、N個(いくつかの定数)のポインターを後ろ向きにしてパスでグループ化し、#インスタンスとバイトを合計したものでした。私は、文字列から逆方向に二つのポインタをジャンプした場合たとえば、私は大食家リークを見つけるかもしれない:JProfiler

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

にyourkitのような一部の人々を開発しています。 – bmargulies

+0

@bmargulies:あなたの下位レベルのオブジェクトの所有者を近似できるようにする機能は何ですか?私が見つけることができる最も近いものは、https://www.yourkit.com/docs/java/help/mem_method_back_traces.jspでしたが、あなたのプロセスをアタッチする必要があります(https://www.yourkit.com/docs/java/help /allocations.jsp)を実行している間、私は贅沢を持っていません。私はヒープダンプしか持っていません。 – joseph

+1

私は分かりません。したがって、コメントではなく、答えです。 – bmargulies

答えて

1

ヒープウォーカーは累積入ってくるの参照を示す図があります。

enter image description here

免責事項:あなたは、ヒープ上のすべてのint[]アレイ用の着信参照のチェーンを参照してください下に私の会社は、このためにJProfilerを

+0

これは、すべての "配列内容"、12または〜2MBが指示対象から始めることができるか、またはbImgなどから12MB〜2MBかを示していますか?参照対象、bImgなどが同時に指しているので合計は100%を超えていますラスター? – joseph

+1

"参照、bImgなどが同時にラスターを指しているため、合計は100%を超えていますか?"それは正しいです。 –

関連する問題