3

単一の参照がどれだけのメモリを占有するかを尋ねているわけではありません。ガベージコレクションの逆の意味で疑問に思っています。

つまり、参照 X が与えられた場合、ガベージ コレクターが解放できない参照のメモリ量です。

これを行うことができますか?

明らかに可能で、参照のセット (AB と C) がある場合、保持されているメモリに重複がある可能性があります (つまり、A と B の両方がメモリの同じビットに何らかの接続を持っている可能性があります)。わかった。

ポイントは、メモリ リークが発生している理由を突き止めようとすることです。寿命の長いオブジェクトを含むプログラムがある場合、これらのオブジェクトのどれが成長しているかをプログラムで把握し、そのオブジェクトを洗い流して繰り返すことができます。

それは可能ですか?

4

1 に答える 1

1

MemoryMeasurerは面白そうに見えますが、質問はあなたが知らないメモリについて尋ねていると思います。記憶が予想外に肥大化し、その理由の手がかりを探しています。

VisualVMには、保持されているオブジェクトの種類を通知するメモリプロファイラーがあります。これは開始するのに適した場所です。これを逆転させ、どのオブジェクトがそれらを保持しているかを教えてくれるツールを私は知りません。

于 2012-08-12T07:34:13.637 に答える