GCはもはや参照を持たないオブジェクトのメモリを解放しますが、使用されなくなったオブジェクトへの参照があるかどうかを確認する有効な方法はありますか?Java GCとメモリ使用量のトラッキング
もう使用されていないオブジェクトへの参照を残さないようにする方法のヒントは、大きく強化されています。
この状況でWindowsタスクマネージャを使用していますか?もしそうなら、それを使って私のプログラムを批判する方法のヒントも助けになるでしょう。
ありがとうございました。
GCはもはや参照を持たないオブジェクトのメモリを解放しますが、使用されなくなったオブジェクトへの参照があるかどうかを確認する有効な方法はありますか?Java GCとメモリ使用量のトラッキング
もう使用されていないオブジェクトへの参照を残さないようにする方法のヒントは、大きく強化されています。
この状況でWindowsタスクマネージャを使用していますか?もしそうなら、それを使って私のプログラムを批判する方法のヒントも助けになるでしょう。
ありがとうございました。
チェックは簡単です。あなたはまだ参照しているすべてのオブジェクトを使用しています。
"メモリリーク"のよくある問題は、コレクションにオブジェクトを追加し、オブジェクトが不要になったときにそれらをクリーンアップすることを忘れることです。この問題を回避する方法は、WeakReferenceまたはこれらを使用するコレクションを使用することです。弱いハッシュマップ。これらは、参照が他の場所になくなったときにクリーンアップされます。
IMHO、Windowsタスクマネージャは、ここのヘルプよりも混乱する可能性があります。 ;)
YoursKitのようなVIsualVMまたは商用メモリプロファイラを使用すると、メモリ消費量を調べるのに最適な方法です。
What is a “Memory leak” in Java?という記事が便利です(私はここで宣伝しているツールについてはわかりません)。
参照されているが使用されていないオブジェクトの検索方法はわかりませんが、ガベージコレクションできるオブジェクトもプログラムに影響を与えます。
GCアクティビティを追跡するには、Java non standard option-Xloggc:<file>
を簡単に使用できます。これにより、GCアクティビティが指定されたファイルに記録されます。ガベージコレクションでアプリケーションがどの程度ビジーであるかを最初に感じ取ることができます。
私はあなたの質問に答えなかったが、これはあなたにとって有益な情報であることを願っています。