jmap - メモリーマップ
形式
jmap [ option ] pid
jmap [ option ] executable core
jmap [ option ] [server-id@]remote-hostname-or-IP
パラメータ
- option
- 各オプションは互いに排他的です。オプションを使用する場合、コマンド名の直後に記述します。
- pid
- 印刷するメモリーマップのプロセス ID。プロセスは Java プロセスである必要があります。マシン上で実行している Java プロセスの一覧を取得するために、jps を使用できます。
- executable
- コアダンプの作成元の Java 実行可能ファイルです。
- core
- 印刷するメモリーマップのコアファイル。
- remote-hostname-or-IP
- リモートデバッグサーバー (jsadebugd を参照) のホスト名または IP アドレスです。
- server-id
- 複数のデバッグサーバーが同一のリモートホストで動作している場合の、オプション固有の ID です。
説明
jmap は、指定されたプロセスやコアファイルまたはリモートデバッグサーバーの、共用オブジェクトメモリーマップまたはヒープメモリーの詳細を出力します。指定されたプロセスが 64 ビット VM 上で実行されている場合、次のように -J-d64 オプションの指定が必要な場合があります。
jmap -J-d64 -heap pid
注:このユーティリティーはサポート対象外であり、将来の JDK のバージョンでは利用できなくなる可能性があります。dbgeng.dll が存在しない Windows システムでは、これらのツールが機能するために「Debugging Tools For Windows」をインストールする必要があります。また、PATH
環境変数に、ターゲットプロセスで使用される jvm.dll
の場所またはクラッシュダンプファイルが生成された場所を含めるようにしてください。
次に例を示します。 set PATH=<jdk>\jre\bin\client;%PATH%
- <オプションなし>
- オプションを使用しない場合、jmap は共用オブジェクトマッピングを出力します。ターゲット VM にロードされた共用オブジェクトごとに、開始アドレス、マッピングのサイズ、および共用オブジェクトファイルのフルパスが印刷されます。これは、Solaris の pmap ユーティリティーと類似しています。
- -dump:[live,]format=b,file=<filename>
- Java ヒープを hprof バイナリ形式で filename にダンプします。live サブオプションは省略可能です。これが指定された場合、ヒープ内で生存中のオブジェクトのみがダンプされます。ヒープダンプを参照するには、生成されたファイルを jhat (Java Heap Analysis Tool) を使用して読み取ります。
- -finalizerinfo
- ファイナライズを待っているオブジェクトに関する情報を出力します。
- -heap
- ヒープサマリーを印刷します。使用される GC アルゴリズム、ヒープ構成、および世代ごとのヒープ使用率が印刷されます。
- -histo[:live]
- ヒープのヒストグラムを印刷します。Java クラスごとに、オブジェクトの数、バイト単位でのメモリーサイズ、および完全修飾クラス名が印刷されます。VM 内部クラス名は、「*」の接頭辞を付けて印刷されます。live サブオプションが指定された場合、生存中のオブジェクトのみがカウントされます。
- -permstat
- Permanent 世代の Java ヒープの、クラスローダー関連の統計データを印刷します。クラスローダーごとに、その名前、状態、アドレス、親クラスローダー、およびクラスローダーがロードしたクラスの数とサイズが印刷されます。さらに、intern された文字列の数とサイズも出力されます。
- -F
- 強制 (Force)。pid が応答しない場合に、jmap -dump または jmap -histo オプションとともに使用します。このモードでは、live サブオプションはサポートされません。
- -h
- ヘルプメッセージを出力します。
- -help
- ヘルプメッセージを出力します。
- -J<flag>
- jmap が実行されている Java 仮想マシンに <flag> を渡します。