0

使用している古い Java アプリケーションでメモリ不足の例外が発生しました。アプリケーションのどの部分がメモリ不足の例外を引き起こしているかを特定するのに役立つツールはありますか?

ほとんどのツールは、Web ベースの Java アプリケーション用に構築されているようです。

私のアプリケーションは Web ベースのアプリケーションではないため、WAR ファイルと EAR ファイルを作成してからメモリ リーク用のツールを実行する余裕はありません。

そのようなアプリケーション用のツールを知っている人はいますか?

4

4 に答える 4

3

JDK に含まれるいくつかの基本的なツール:

  • jps -l : Java プロセスの PID を取得します。それで、
  • jmap -histo:live : クラスごとの数値とメモリ使用量を取得するため、メモリ リークの原因となる可能性が高いものを特定できます。

JVM に組み込まれたプロファイラーである HPROF を使用することもできます。非常に使いやすく、コードを変更する必要はなく、コマンド ライン オプションをいくつか使用するだけです。使用法については、ドキュメントを参照してください。hprof のログを「手動で」読み取るか、HPJmeter (Apache JMeter ではない) などのツールを使用して、適切なグラフなどを描画できます。市販のプロファイラーでも、HPROF の出力を処理できます。

于 2013-03-20T10:28:35.333 に答える
1

JVM開始パラメーターを変更できる場合は、ヒープファイルをOutOfMemoryにダンプし、Eclipseのメモリ分析ツールを使用して分析します。HotSpotJVMのパラメーターはです-XX:-HeapDumpOnOutOfMemoryError。このファイルの場所を指定するには、を使用します-XX:HeapDumpPath=<path_to_save>

于 2013-03-19T23:29:13.643 に答える
0

試すことができるもう 1 つのツールはPlumbrです。これは、Java ベースのアプリケーションでメモリ リークを検出することを目的としています。

于 2013-03-20T10:21:33.960 に答える
-1

あなたのキットは最高です!やってみて!そのための簡単なチュートリアルさえあります。ただし、ツールを購入する必要があります

于 2013-03-20T10:24:31.287 に答える