JVM jhatのチューニング

jhat - Javaヒープ解析ツール

JHATコマンドのJavaヒープダンプファイルを解析し、WebServerのを起動します。jhatを使えあなたのお気に入りのWebブラウザーブラウズヒープダンプを使用することができます。(のような「ショー既知のクラスのすべてのインスタンスJHATサポート事前に設計されたクエリはFoo「」」) とOQL((クエリ言語クエリ言語をオブジェクトオブジェクト) - 。クエリのSQLに似たクエリ言語のヒープダンプ缶の一種HTTP :// localhostを:7000 / oqlhelp /このツールを使用してOQL上の命令は実験的であり、将来のJDKのバージョンでは利用できない場合があります。

ここでは、javaヒープダンプファイルを生成するためのいくつかの方法があります。

  • jmapのは、実行時にヒープダンプを取得-dump
  • jconsoleをhotspotdiagnosticmxbeanによって、実行時にヒープ・ダンプを取得
  • 、OutOfMemoryErrorのヒープダンプを投げている時に、Javaプログラム:: -XX + HeapDumpOnOutOfMemoryErrorコマンドを起動するときに-XX + HeapDumpOnOutOfMemoryErrorを使用することにより、プログラムが自動的に生成されます
  • 使用HPROF
jhat -h
Usage:  jhat [-stack <bool>] [-refs <bool>] [-port <port>] [-baseline <file>] [-debug <int>] [-version] [-h|-help] <file>

	-J<flag>          Pass <flag> directly to the runtime system. For
			  example, -J-mx512m to use a maximum heap size of 512MB
	-stack false:     Turn off tracking object allocation call stack.
	-refs false:      Turn off tracking of references to objects
	-port <port>:     Set the port for the HTTP server.  Defaults to 7000
	-exclude <file>:  Specify a file that lists data members that should
			  be excluded from the reachableFrom query.
	-baseline <file>: Specify a baseline object dump.  Objects in
			  both heap dumps with the same ID and same class will
			  be marked as not being "new".
	-debug <int>:     Set debug level.
			    0:  No debug output
			    1:  Debug hprof file parsing
			    2:  Debug hprof file parsing, no server
	-version          Report version number
	-h|-help          Print this help and exit
	<file>            The file to read

For a dump file that contains multiple heap dumps,
you may specify which dump in the file
by appending "#<number>" to the file name, i.e. "foo.hprof#3".

All boolean options default to "true"
  • 使用します。

jhat [ オプション ] <ヒープ・ダンプ・ファイル>

オプション

オプション、オプション、単語の使用は、後jhatで従わなければならない場合。

ヒープ・ダンプ・ファイル

Javaバイナリヒープダンプファイルを参照してください。ダンプファイルは、複数のヒープダンプが含まれている場合は、「#3 foo.hprof」モザイク#<番号>、すなわち後ろのヒープ内のファイルを表示することができます。

真/偽-stack

スタックトレースで閉じるのオブジェクトは、あなたが割り当てたサイトの情報は、ヒープ・ダンプでは利用できない場合、このフラグをfalseに設定しなければならないことに注意してください。デフォルト値はtrueです。
オブジェクト割り当て呼び出しスタックの追跡をオフにします。アロケーションサイトの情報は、ヒープ・ダンプで利用できない場合、あなたはこのフラグをfalseに設定する必要があることに注意してください。デフォルトはtrueです。


真/偽-refs

オブジェクト参照のクローズ追跡。デフォルト値はtrueです。デフォルトでは、(指定されたオブジェクトまたはそこに引用されている別名着信オブジェクト参照を指し示す)ポインタを返すヒープ内のすべてのオブジェクトについて計算されます。
オブジェクトへの参照の追跡をオフにします。真であるデフォルト。デフォルトでは、ヒープ内のすべてのオブジェクトに対して計算されているバックポインタ(参照元別名またはインくるの参照を指定されたオブジェクトを指しているオブジェクト)。


-portポート番号
指定のサーバポート、デフォルトの7000。


-exclude除外ファイルを

リストのメンバーを除外する「到達可能なオブジェクト」のクエリのデータである必要があり、ファイルを指定します。ファイルはjava.lang.String.valueが含ま記載されている場合、例えば、リスト・オブジェクトにアクセスすることができるたびに特定のオブジェクトから計算される「o」は、考慮されないパスがjava.lang.String.valueが基準フィールドに関する。
データメンバー一覧を含むファイルを指定し 、「到達可能なオブジェクト」のクエリから除外すべきです。例えば、ファイルにjava.lang.String.valueが含まれていた場合、その後、いつでも「o」は、特定のオブジェクトから到達可能なオブジェクトのリストが計算されます、java.lang.String.valueがフィールドに関連する参照パスがないであろうと考えます。


-baselineベースライン・ダンプ・ファイル

ベースラインのヒープ・ダンプ(ベースラインヒープ・ダンプ)を指定します。2つのスタックは、同じダンプのオブジェクトIDオブジェクトのは、「新」としてマークされることはありません。他の目的は、「新しい」としてマークされます。異なる2つのヒープダンプを比較するときに便利です。


-debug int型

0のデバッグレベルがないデバッグ出力、より高い値が、より詳細にモデルの出力を示していない設定。

-version

プリントバージョン番号を表示して終了。

例えば:

jhat -version
jhat version 2.0 (java version 1.8.0_73)


-J <フラグ>
jhat JVMコマンドを指定します。例えば:jhat -J-Xmx512m。

 

おすすめ

転載: blog.csdn.net/top_explore/article/details/95166138