web-dev-qa-db-ja.com

IntelliJでヒープダンプを分析するにはどうすればよいですか? (メモリーリーク)

Javaアプリケーションからヒープダンプを生成しましたが、このアプリケーションはjmapツールを使用して数日間実行しました->これにより、大きなバイナリヒープダンプファイルが生成されます。

IntellIJ IDEA内でこのヒープダンプのメモリ分析を実行するにはどうすればよいですか?

EclipseとNetbeans用のツールがあることは知っていますが、可能であればIDEAを使用したいです。

分析の基本的な結果は、メモリリークのデバッグを開始できるようにするために、クラスごとにメモリ内の各オブジェクトのインスタンスの数を教えてくれます。

48
vikingsteve

最も良いのは Memory Analyzer(MAT) です。IntelliJにはバンドルされたヒープダンプアナライザーがありません。

38
Meo

上記の回答を2018年に更新し、VisualVMとEclipse MATの両方を使用したいと思います。

使い方:

VisualVMは、ライブ監視とダンプヒープに使用されます。ヒープダンプを強力に分析することもできますが、MATにはより多くの機能(リークを検出する自動分析など)があるため、VisualVMダンプ出力(.hprofファイル)をMATに読み込みます。



VisualVMを入手:

ここからVisualVMをダウンロードします: https://visualvm.github.io/

Intellijのプラグインもダウンロードする必要があります。 enter image description here

その後、Intellijに別の2つの新しいオレンジ色のアイコンが表示されます。 enter image description here

オレンジのアプリでアプリを実行すると、VisualVMで左側にプロセスが表示され、右側にデータが表示されます。しばらく座ってこのツールを学習してください。非常に強力です。 enter image description here



Eclipseのメモリ分析ツール(MAT)をスタンドアロンとして入手します。

ここからダウンロード: https://www.Eclipse.org/mat/downloads.php

そして、これはそれがどのように見えるかです: enter image description hereenter image description here

それが役に立てば幸い!

24
nbtk

VisualVM Launcherを使用して、IDEA内からVisualVMを起動することもできます。 https://plugins.jetbrains.com/plugin/7115?pr=idea 個人的にはこれがより便利だと感じています。

9
Katerina A.

プラグインリポジトリにある「JVMデバッガメモリビュー」も存在します。これは便利です。

4
Deniss M.

jdk/bin/jvisualvm.exeにある「Java VisualVM」を実行するだけです

これにより、GUIが開き、[ファイル]メニュー-> [読み込み...]を使用して、*。hprofファイルを選択します。

これで完了です!

2
jaken chen