ヒープヒストグラムでは、たくさんのchar配列([C]、バイト配列([B)、ハッシュノード、ロック)を使用しています。メモリリークの下位オブジェクトの '所有者'を近似する方法
これらの文字配列、バイト配列、ハッシュノード、およびロックを誰が所有しているのか教えてくれるツールはありますか?私は '所有権'が非常にあいまいであると予想しているので、それを近似するために使用されるいくつかの方法とツールはありますか?
これまでのところ、私はchar配列からvisualvmの逆ポインタをたどってきましたが、これは私には問題の定性的な感じが与えられます。私は数字が欲しい。
私が持っていた考えの1つは、N個(いくつかの定数)のポインターを後ろ向きにしてパスでグループ化し、#インスタンスとバイトを合計したものでした。私は、文字列から逆方向に二つのポインタをジャンプした場合たとえば、私は大食家リークを見つけるかもしれない:JProfilerで
MB path
1000 char[] <- String <- LeakingBusinessObject
1 char[] <- String <- OkayBusinessObject
にyourkitのような一部の人々を開発しています。 – bmargulies
@bmargulies:あなたの下位レベルのオブジェクトの所有者を近似できるようにする機能は何ですか?私が見つけることができる最も近いものは、https://www.yourkit.com/docs/java/help/mem_method_back_traces.jspでしたが、あなたのプロセスをアタッチする必要があります(https://www.yourkit.com/docs/java/help /allocations.jsp)を実行している間、私は贅沢を持っていません。私はヒープダンプしか持っていません。 – joseph
私は分かりません。したがって、コメントではなく、答えです。 – bmargulies