jps
主な機能:Javaプロセスのリスト
-v: Java仮想マシンに渡されるパラメーターを表示できます。
JpsDemo -XX:+PrintFlagsFinal -XX:SurvivorRatio=2 -javaagent:D:\IDEA\IDEA2017\installpath\IntelliJ IDEA \lib\idea_rt.jar=56858:D:\IDEA\IDEA2017\installpath\IntelliJ IDEA \bin -Dfile.encoding=UTF-8
-m: 出力パラメーターとしてJavaプロセスに渡すパラメーター
3108 Jps -m
20152 JpsDemo RemoteMavenServer
-l: メイン関数のフルパスを出力するために使用できます。
sun.tools.jps.Jps
org.jetbrains.jps.cmdline.Launcher
6380 org.jetbrains.idea.maven.server.RemoteMavenServer
jstat
jstatは、Javaアプリケーションの実行時間に関連する情報を観察するために使用できるツールです。
パラメータ形式
#
jstat -<option> [-t] [-h<lines>] <vmid> [interval] [<count>]]
- よく使われるパラメータは以下の通りです。
-class:ClassLoaderに関する情報が表示される -complier:JITコンパイルに関する情報が表示される -gc:GCに関連するヒープ情報が表示される -gcocpacity:個々の発電容量と使用量が表示される -gccauseガベージコレクション情報は、最後のガベージコレクションと現在のガベージコレクショントリガーの理由とともに表示される。 -gcnew新世代情報を表示する -gcnewcapacity:新しい世代のサイズと使用量が表示される -gcold:古い世代と永続的な世代の情報を表示する -gcoldcapacity:古い年代のサイズを表示する -gcoldcapacity:古い年代のサイズを表示する -gcmetacapacity:メタスペースのサイズが表示される -gcutilゴミコレクタ情報を表示する -printcompilationJITコンパイルされたメソッド情報をエクスポートするtパラメータは出力にタイムスタンプ列を追加し、プログラムの実行時間を表示します。
- hパラメータは、プログラムがサイクル内のデータを印刷する際、テーブルヘッダ情報を表示することを意味します。これはエクセルの統計的なクラス結果の表のようなもので、表の最初の行はテーブルヘッダに相当する科目名をリストし、次の各行はデータに相当する各科目の各生徒の結果を表示します。intevalを10に設定すると、10統計ごとに、表のヘッダ情報を再エクスポートします。
- inteval 統計間隔をミリ秒単位で指定します。
- count 統計の数を指定します。
共通パラメータ
-クラス
Loaded:ロードされたクラスの数を示す Bytesロードされたクラスの合計サイズ UnLoadedアンインストールされたクラスの数 Bytesアンインストールされたクラスのサイズ Timeクラスのロードとアンロードに費やされた時間の合計-コンパイラ
Compiled: コンパイルタスクが実行された回数を示す Failedコンパイルに失敗した回数を示す Invalidコンパイル不能の回数を示す Time総コンパイル時間を示す FileType最後のコンパイル失敗のタイプを示す FailedMethod最後のコンパイル失敗を示すクラス名とメソッド名-ジーシー
S0Cs0のサイズ S1Cs1のサイズ S0Us0が既に使用しているスペース S1U: s1によって既に使用されているスペース ECエデン領域のサイズ EU: edenの未使用領域 OC: 古いサイズ MUメタスペースが使用するスペース CCSC圧縮されたクラス空間の現在の容量 CCSU現在圧縮されたクラス空間が使用されている YGCアプリケーション起動からサンプリングまでの若い世代のgc数 YGCTアプリケーション起動からサンプリングまでにgcが若い世代に費やした時間 FGCアプリケーション起動からサンプリングまでに旧世代のgcが使用された回数。 FGCTアプリケーション起動から旧世代のgcをサンプリングするまでの時間 GCTアプリケーション起動からサンプリングまでのgcの総使用時間-容量
NGCMN若い世代の初期化サイズ NGCMXヤングジェネレーションの最大サイズ NGC: 若い世代の現在のキャパシティ S0Cs0のサイズ S1Cs1のサイズ ECeden領域のサイズ(単位:KB) OGCMN旧世代の初期化サイズ OGCMX旧世代の最大サイズ OGC古い世代の現在の容量 OC: 古い時代のサイズ (KB) MCMNメタスペース内の初期化サイズ MCMXメタスペースの最大サイズ MCメタ空間の現在のサイズ CCSMN最小圧縮クラス空間サイズ CCSMX最大圧縮クラス・スペース・サイズ CCSC現在の圧縮クラス空間のサイズ YGCアプリケーション起動から旧世代のgcをサンプリングするまでの時間 FGCアプリケーション起動からサンプリングまでのgcの総使用時間-原因
LGCC:GC GCC現在のGCの理由-ジーシーニュー
TT:新しい世代のオブジェクトの年齢が古い世代のオブジェクトに昇格する MTT新世代のオブジェクトが旧世代のオブジェクトに昇格する最大年齢 DSS:必要な生存領域のサイズ-gcnewcapacity
S0CMXs0エリアの最大値-gcold
-gcoldcapacity
-gcmetacapacity

- -gcutil

jinfo
jinfoを使用すると、実行中のJavaアプリケーションの拡張パラメータを表示することができ、実行時に一部のパラメータを変更することもできます。
#
jinfo <option> <pid>
OPTIONは
- -flag :指定されたJava仮想マシン・パラメータを表示します。
- -flag [+|-] : Java VMパラメータを設定するブール値
- -flag=:指定されたJava仮想マシン・パラメーターの値を設定します。
jmap
Javaアプリケーションのヒープ・ダンプ・ファイルを生成し、ヒープ内のオブジェクト・インスタンス、ClassLoader情報、ファイナライザ・キューの統計情報を表示できます。
Javaオブジェクトの統計
#プロセスID 17340を持つJavaプロセスオブジェクトをカウントし、Dにエクスポートする。:\tmp\jmap.txt
jmap -histo 17340 > D:\tmp\jmap.txt
ファイナライザ・キューを表示するオブジェクト
#プロセスID 16596のファイナライザ・キューのオブジェクトjmap -finalizerinfo 16596を表示する。
Javaアプリケーションの現在のヒープ・スナップショットの取得
#JavaプロセスID 16596のヒープ・スナップショット・ファイルを取得し、Dにエクスポートする。:\tmp\heap.hprof jmap -dump:format=b,file=D:\tmp\heap.hprof 16596
jhat
このコマンドは、ヒープスナップショットファイルを分析し、HTTPサーバーを起動し、ブラウザーでスナップショットファイルを閲覧します。
#heap.hprofjmapを使ってエクスポートされる
jhat .\heap.hprof
ブラウザを開き、以下のURLにアクセスしてください。
http://:00/
jstack
Javaアプリケーションのスレッドスタックのエクスポートに使用できます。
#コマンド形式: -lオプションでロックに関する追加情報を表示する。
jstack [-l]
#まずjpsでJavaプロセスのpidを取得し、次にjstackを使ってスレッドスタックファイルをDにエクスポートする。:\tmp\deadlock.txt
jstack -l 10616 > D:\tmp\deadlock.txt
検出されたデッドロックは、ファイルの下部にも表示されます。



