2010-12-15 10 views
1

可能性の重複:
General strategy to resolve Java memory leak?どのようにメモリリークを修正するには?

は、私は最近、私はそれが今の私たちの唯一の解決策は、それごとに再起動することで、メモリリークが発生していることがわかった、私はローカルで実行するスタンドアロンのプログラムを持っています日。このメモリリークを発見する最良の方法は何ですか?どのツールと方法を使うべきですか?事前に

おかげ

答えて

2

プロファイラは、通常、複雑なプログラムでメモリリークを見つけるのに役立ちます。しかし問題のプログラムが小さければ、ソースコードを注意深く読んでメモリリークを見つけることができます。

あなたがソースコードを読んでいる間、質問に次を考えてみて:

  1. あなたのプログラムが繰り返し をどのように処理をしているのですか?このアクション中に作成されたオブジェクトは ですか?
  2. アクションの後に プログラムが必要とする作成済みオブジェクトはどれですか? が完了しましたか?
  3. どのオブジェクトが一度作成されたか(たとえば、プログラム の起動時)、最後までメモリ に残りますか?
  4. 前の手順で特定したオブジェクトのいずれかに、手順3で特定したオブジェクトから到達可能かどうかを確認します。破棄可能なオブジェクトの中には、ステップ3のオブジェクトから到達可能なものがあることがわかった場合、どのようにこの到達可能性を破ることができるか考えてください。
関連する問題