1

を使用して、Javaアプリケーションのメモリリークを検出しようとしていますVisualVM。私はを使用していVisualVM 1.3.5ます。

このチュートリアルで言うべき手順に従いましたhttp://rejeev.blogspot.in/2009/04/analyzing-memory-leak-in-java.html

これらの手順を実行した後、コードの編集をどこから開始する必要があるのか​​わかりません。コードを修正するためにメモリがリークされたJavaクラスと行番号を見つける方法はありますか?

または、を使用してメモリリークを見つける良い方法を提案してくれますVisualVM

良い答えは間違いなくありがたいです。

4

1 に答える 1

9

プロファイリングツールは、潜在的なメモリリークが発生しているラインを提供しません。

アプリケーションのプロファイリングには、それよりも少し手間がかかります。通常、VisualVMのようなツールは、たとえば、どのタイプのオブジェクトが最もインスタンス化されているかを示し、問題がどこにあるかを示すことができます。

たとえば、大量のbyte []オブジェクトが作成されている場合、作成している入力/出力ストリームを閉じていない可能性がありますか?

メモリリークを見つける特効薬はありません。手間とある程度の練習が必要であり、完全にアプリケーションに依存します。

そうは言っても、このリンクも役立つかもしれません:

http://www.kdgregory.com/index.php?page=java.outOfMemory

于 2013-03-15T11:49:31.927 に答える