概要
Webサイトhttp://www.eclipse.org/mat/
使用方法
- Heapダンプの出力
Heapダンプの出力
EMAのヘルプを見るとHeapダンプを出力する方法としては以下のものがあるようだ。- VM Parameter
- On out of memory
- On Ctrl + Break
- Agent
- Sun Tools
- JMap
- JConsole
- SAP Tool
Heapダンプの種類 | 使用方法 |
VM Parameter | Javaアプリケーション起動時に"-vmargs"をつける |
On out of memory | VM Paramterに"-XX:+HeapDumpOnOutOfMemoryError"を付与して実行する。 OutOfMemoryErrorが発生したときに作業ディレクトリにダンプファイルが出力される。 |
On Ctrl + Break | VM Parameterに"-XX:+HeapDumpOnCtrlBreak"を付与して実行する。 Ctrl + Breakを行ったときに作業ディレクトリにダンプファイルが出力される。 |
Agent | |
Sun Tools | |
JMap | |
JConsole | "${JDK_HOMDE}/bin/jconsole.exe"で起動する。 解析対象となるJavaプロセスに接続した後、"MBeans"タブの"com.sun.management" > "HotSpotDiagnostic" > "Operations" > "dumpHeap"を選択し、"dumpHeap"ボタンを押下するとp0で指定されたファイルにHeapダンプが出力される。 |
SAP Tool |
以下はEMAのヘルプから抜粋したものでVender、VersionごとのJavaVMに対する各種Heapダンプツールのサポート状況です。
Vender / Release | VM Parameter | Sun Tools | SAP Tool | |||
On out of memory | On Ctrl+Break | Agent | JMap | JConsole | JVMMon | |
Sun, HP | ||||||
1.4.2_12 | Yes | Yes | Yes | |||
1.5.0_07 | Yes | Yes | Yes (Only Solaris and Linux) | |||
1.6.0_00 | Yes | Yes | Yes | Yes (Not working with Java AS) | ||
SAP | ||||||
Any 1.5.0 | Yes | Yes | Yes | Yes (Only Solaris and Linux) | Yes |
今回はSunのJDK 1.6 + "VM Parameter"の"On out of memory"で行う(表のピンクのセル)。
-XX:+HeapDumpOnOutOfMemoryError
Heapダンプファイルの解析
Overview
"Overview"Details
Size
Classes
Objects
Class Loader
Biggest Objects by Retained Size
"Inspector" view
Histogram
クラスごとのインスタンス数、Shallow Heapサイズ、保有Heapサイズを一覧で表示。"Class Name"
"Objects" : オブジェクト数
"Shallow Heap" :
"Retained Heap" :
0 件のコメント:
コメントを投稿