Sun 1.6 JVM (1.6_05) でメモリ リークを引き起こしている大規模なアプリケーション (300K LOC) に取り組んでいます。Java のプロファイリングでは、リークは見られません。リークの原因を検出できる JVM からの診断はありますか?
単純で分離された Java テスト ケースを作成できませんでした。JVM で C ヒープ アナライザーを使用してこれを把握する唯一の方法はありますか?
アプリケーションはソケットのプールを作成し、大量のネットワーク I/O を実行します。
David G
質問する
397 次
2 に答える
2
profiler4jのような一部のプロファイラーは、マネージメモリとアンマネージメモリを表示できます(ライブカーブ)。次に、リークがあるかどうか、およびリークがいつ発生するかを確認できます。しかし、それ以上の情報は見つかりません。
この後、2つの可能な解決策があります。
- ライブカーブを使用すると、問題を特定し、問題の原因が見つかるまで、より簡単なテストを作成できます。
- 次のような一般的な問題についてコードを検索します。
- 開始されないThreadクラスのインスタンス。
- 廃棄されることのない画像やグラフィック
- 決して閉じないODBCブリッジオブジェクト
于 2008-09-20T13:06:56.997 に答える
0
valgrind( http://valgrind.org/ )が大好きです。サポートしているシステムで実行している場合です。それは本当に揺れる!
于 2008-09-20T13:08:12.470 に答える