JProfiler ヘルプDownload

スナップショットを操作するためのコマンドライン実行ファイル


オフラインプロファイリングを使用してスナップショットをプログラム的に保存する場合、 それらのスナップショットからデータやレポートをプログラム的に抽出する必要があるかもしれません。 JProfilerは、スナップショットからビューをエクスポートするためのものと、スナップショットを比較するためのものという、 2つの別々のコマンドライン実行ファイルを提供します。

スナップショットからビューをエクスポートする

実行ファイル bin/jpexport は、ビューのデータをさまざまな形式にエクスポートします。 -help オプションを使用して実行すると、利用可能なビュー名とビューオプションに関する情報が得られます。 簡潔さのために、以下の出力では重複するヘルプテキストは省略されています。

使用法: jpexport "スナップショットファイル" [グローバルオプション]
              "ビュー名" [オプション] "出力ファイル"
              "ビュー名" [オプション] "出力ファイル" ...

"snapshot file" は、次のいずれかの拡張子を持つスナップショットファイルです:
           .jps, .hprof, .hpz, .phd, .jfr
      「ビュー名」は、以下に一覧されているビュー名の1つです
      [options] は -option=value 形式のオプションのリストです
      "output file"はエクスポートの出力ファイルです

グローバルオプション:
    -obfuscator=none|proguard|yguard
        選択した難読化ツールに対してデオブスクエートします。デフォルトは「none」で、他の値を使用する場合はmappingFileオプションを指定
        する必要があります。
    -mappingfile=<file>
        選択した難読化ツールのマッピングファイル。
    -outputdir=<出力ディレクトリ>
        出力ファイルが相対パスの場合に、ビューに使用されるベースディレクトリです。
    -ignoreerrors=true|false
        オプションを設定できないビューで発生するエラーを無視して、次のビューへ進みます。デフォルト値は"false"です。つまり、最初のエラーが発生
        した時点でエクスポートが終了します。
    -csvseparator=<区切り文字>
        CSVエクスポートのフィールド区切り文字です。デフォルトは「,」です。
    -bitmap=false|true
        適切な場合は、メインコンテンツに対してSVGではなくビットマップ画像をエクスポートします。デフォルト値はfalseです。

利用可能なビュー名とオプション:
* TelemetryHeap, TelemetryObjects, TelemetryThroughput, TelemetryGC, 
  TelemetryClasses, TelemetryThreads, TelemetryCPU
  ?????:
    -format=html|csv
        エクスポートされたファイルの出力フォーマットを決定します。存在しない場合、エクスポートフォーマットは出力ファイルの拡張子から決定されます。
    -minwidth=<ピクセル数>
        graphの最小幅(ピクセル単位)。デフォルト値は800です。
    -minheight=<ピクセル数>
        graphの最小高さ(ピクセル単位)。デフォルト値は600です。

* Bookmarks, ThreadMonitor, CurrentMonitorUsage, MonitorUsageHistory
  ?????:
    -format=html|csv

* AllObjects
  ?????:
    -format=html|csv
    -viewfilters=<カンマ区切りのリスト>
        エクスポートのためのビュー・フィルターを設定します。ビュー・フィルターを設定すると、指定されたパッケージとそのサブパッケージのみがエクスポー
        トされたビューに表示されます。
    -viewfiltermode=startswith|endswith|contains|equals
        ビューのフィルターモードを設定します。デフォルト値は「contains」です。
    -viewfilteroptions=casesensitive
        ビュー・フィルターのブールオプション。デフォルトでは、オプションは設定されていません。
    -aggregation=class|package|component
        エクスポートの集約レベルを選択します。デフォルト値はクラスです。
    -expandpackages=true|false
        パッケージ集約レベルでパッケージノードを展開して、含まれているクラスを表示します。デフォルト値は「false」です。他の集約レベルやcsv出
        力形式では効果がありません。

* RecordedObjects
  AllObjects?????????????????:
    -liveness=live|gc|all
        エクスポートの生存性モードを選択します。つまり、ライブオブジェクト、ガベージコレクションされたオブジェクト、またはその両方を表示するかどうか
        を指定します。デフォルト値はライブオブジェクトです。

* AllocationTree
  ?????:
    -format=html|xml
    -viewfilters=<カンマ区切りのリスト>
    -viewfiltermode=startswith|endswith|contains|equals
    -viewfilteroptions=casesensitive
    -aggregation=method|class|package|component
        エクスポートの集約レベルを選択します。デフォルト値はメソッドです。
    -class=<fully qualified class name>
        割り当てデータを計算するクラスを指定します。空の場合、すべてのクラスの割り当てが表示されます。package 
        オプションと一緒に使用することはできません。
    -package=<fully qualified package name>
        パッケージの割り当てデータを計算するためのパッケージを指定します。空の場合、すべてのパッケージの割り当てが表示されます。パッケージ名に 
        .** を追加すると、パッケージが再帰的に選択されます。class オプションと一緒に使用することはできません。
    -liveness=live|gc|all

* AllocationHotSpots
  ?????:
    -format=html|csv|xml
    -viewfilters=<カンマ区切りのリスト>
    -viewfiltermode=startswith|endswith|contains|equals
    -viewfilteroptions=casesensitive
    -aggregation=method|class|package|component
    -class=<fully qualified class name>
    -package=<fully qualified package name>
    -liveness=live|gc|all
    -unprofiledclasses=separately|addtocalling
        呼び出されていないクラスを別々に表示するか、呼び出し元のクラスに追加するかを選択します。デフォルト値は、呼び出されていないクラスを別々に表示
        することです。
    -valuesummation=self|total
        ホットスポットの時間がどのように計算されるかを決定します。デフォルトは「self」です。
    -expandbacktraces=true|false
        HTMLまたはXML形式でバックトレースを展開します。デフォルト値は「false」です。

* ClassTracker
  TelemetryHeap?????????????????:
    -class
        追跡されたクラス。欠落している場合、最初に追跡されたクラスがエクスポートされます。

* CallTree
  ?????:
    -format=html|xml
    -viewfilters=<カンマ区切りのリスト>
    -viewfiltermode=startswith|endswith|contains|equals
    -viewfilteroptions=casesensitive
    -aggregation=method|class|package|component
    -threadgroup=<スレッドグループの名前>
        エクスポートするスレッドグループを選択します。"thread"を指定した場合、スレッドはこのスレッドグループ内のみで検索されます。それ以外の
        場合は、スレッドグループ全体が表示されます。
    -thread=<スレッドの名前>
        エクスポートするスレッドを選択します。デフォルトでは、呼び出しツリーはすべてのスレッドに対してマージされます。
    -threadstatus=all|running|waiting|blocking|netio
        エクスポートのためのスレッドステータスを選択します。デフォルト値は「running」です。

* HotSpots
  ?????:
    -format=html|csv|xml
    -viewfilters=<カンマ区切りのリスト>
    -viewfiltermode=startswith|endswith|contains|equals
    -viewfilteroptions=casesensitive
    -aggregation=method|class|package|component
    -threadgroup=<スレッドグループの名前>
    -thread=<スレッドの名前>
    -threadstatus=all|running|waiting|blocking|netio
    -expandbacktraces=true|false
    -unprofiledclasses=separately|addtocalling
    -valuesummation=self|total

* OutlierDetection
  ?????:
    -format=html|csv
    -threadstatus=all|running|waiting|blocking|netio
    -viewfilters=<カンマ区切りのリスト>
    -viewfiltermode=startswith|endswith|contains|equals
    -viewfilteroptions=casesensitive

* Complexity
  ?????:
    -format=html|csv|properties
    -fit=best|constant|linear|quadratic|cubic|exponential|logarithmic|n_log_n
        エクスポートするフィット。デフォルト値は「best」です。カーブフィッティングデータはCSVにエクスポートされません。
    -method=<method name>
        複雑性グラフをエクスポートするメソッド名です。指定されていない場合、最初のメソッドがエクスポートされます。それ以外の場合、指定されたテキスト
        で始まる最初のメソッド名がエクスポートされます。
    -width=<ピクセル数>
    -height=<ピクセル数>

* ThreadHistory
  TelemetryHeap??????????????????????
    -format=html

* MonitorUsageStatistics
  ?????:
    -format=html|csv
    -type=monitors|threads|classes
        エンティティを選択して、そのモニタースタティスティクスを計算します。デフォルト値は「monitors」です。

* ProbeTimeLine
  ThreadHistory?????????????????:
    -probeid=<id>
        プローブの内部IDをエクスポートする必要があります。すべての利用可能な組み込みプローブを一覧表示し、カスタムプローブ名の説明を得るには「jp
        export --listProbes」を実行してください。

* ProbeControlObjects
  ?????:
    -probeid=<id>
    -format=html|csv

* ProbeCallTree
  ?????:
    -probeid=<id>
    -format=html|xml
    -viewfilters=<カンマ区切りのリスト>
    -viewfiltermode=startswith|endswith|contains|equals|wildcard|regex
    -viewfilteroptions=exclude,casesensitive
    -aggregation=method|class|package|component
    -threadgroup=<スレッドグループの名前>
    -thread=<スレッドの名前>
    -threadstatus=all|running|waiting|blocking|netio
        エクスポートのためのスレッドステータスを選択します。デフォルト値は「all」です。

* ProbeHotSpots
  ProbeCallTree??????????????????????:
    -format=html|csv|xml
    -expandbacktraces=true|false

* ProbeTelemetry
  TelemetryHeap?????????????????:
    -probeid=<id>
    -telemetrygroup
        テレメトリーグループの1から始まるインデックスを設定します。これは、プローブテレメトリービューの上にあるドロップダウンリストで表示されるエン
        トリを指します。デフォルト値は「1」です。

* ProbeEvents
  ?????:
    -probeid=<id>
    -format=html|csv|xml

* ProbeTracker
  TelemetryHeap?????????????????:
    -probeid=<id>
    -index=<number>
        ドロップダウンリスト内のトラッキングされた要素を含む、ゼロベースのインデックスを設定します。デフォルト値は0です。

スナップショットを比較する

実行ファイル bin/jpcompare は、異なるスナップショットを比較し、 それらをHTMLまたは機械可読形式にエクスポートします。-help の出力は以下に示されており、 こちらも重複する説明は省略されています。

使用法: jpcompare "スナップショットファイル"[,"スナップショットファイル",...] [グローバルオプション]
              "比較名" [オプション] "出力ファイル"
              "比較名" [オプション] "出力ファイル" ...

"snapshot file" は、次のいずれかの拡張子を持つスナップショットファイルです:
           .jps, .hprof, .hpz, .phd, .jfr
      「比較名」は、以下に一覧されている比較名の1つです
      [options] は -option=value 形式のオプションのリストです
      "output file"はエクスポートの出力ファイルです

グローバルオプション:
    -outputdir=<出力ディレクトリ>
        出力ファイルが相対パスの場合に、比較に使用されるベースディレクトリです。
    -ignoreerrors=true|false
        オプションを設定できない比較で発生するエラーを無視して、次の比較へ進みます。デフォルト値は"false"です。つまり、最初のエラーが発生した
        時点でエクスポートが終了します。
    -csvseparator=<区切り文字>
        CSVエクスポートのフィールド区切り文字です。デフォルトは「,」です。
    -bitmap=false|true
        適切な場合は、メインコンテンツに対してSVGではなくビットマップ画像をエクスポートします。デフォルト値はfalseです。
    -sortbytime=false|true
        指定されたスナップショットファイルを変更時間でソートします。デフォルト値はfalseです。
    -listfile=<filename>
        スナップショットファイルのパスを含むファイルを読み込みます。1行につき1つのスナップショットファイルです。

利用可能な比較名とオプション:
* Objects
  ?????:
    -format=html|csv
        エクスポートされたファイルの出力フォーマットを決定します。存在しない場合、エクスポートフォーマットは出力ファイルの拡張子から決定されます。
    -viewfilters=<カンマ区切りのリスト>
        エクスポートのためのビュー・フィルターを設定します。ビュー・フィルターを設定すると、指定されたパッケージとそのサブパッケージのみがエクスポー
        トされたビューに表示されます。
    -viewfiltermode=startswith|endswith|contains|equals
        ビューのフィルターモードを設定します。デフォルト値は「contains」です。
    -viewfilteroptions=casesensitive
        ビュー・フィルターのブールオプション。デフォルトでは、オプションは設定されていません。
    -aggregation=class|package|component
        エクスポートの集約レベルを選択します。デフォルト値はクラスです。
    -liveness=live|gc|all
        エクスポートの生存性モードを選択します。つまり、ライブオブジェクト、ガベージコレクションされたオブジェクト、またはその両方を表示するかどうか
        を指定します。デフォルト値はライブオブジェクトです。
    -objects=recorded|heapwalker|all
        記録されたオブジェクト、ヒープウォーカー内のオブジェクト、またはすべてのオブジェクトダンプからのオブジェクト数を比較します。デフォルトは 
        .jps ファイルの場合は記録されたオブジェクトで、HPROF/PHD ファイルの場合はヒープウォーカーです。
    -dumpselection=first|last|label
        比較計算に使用されるすべてのオブジェクトダンプ。デフォルトは最後の値です。
    -label
        dumpselection が 'label' に設定されている場合、比較を計算するためのラベルの名前です。

* AllocationHotSpots
  ?????:
    -format=html|csv
    -viewfilters=<カンマ区切りのリスト>
    -viewfiltermode=startswith|endswith|contains|equals
    -viewfilteroptions=casesensitive
    -aggregation=method|class|package|component
        エクスポートの集約レベルを選択します。デフォルト値はメソッドです。
    -liveness=live|gc|all
    -unprofiledclasses=separately|addtocalling
        呼び出されていないクラスを別々に表示するか、呼び出し元のクラスに追加するかを選択します。デフォルト値は、呼び出されていないクラスを別々に表示
        することです。
    -valuesummation=self|total
        ホットスポットの時間がどのように計算されるかを決定します。デフォルトは「self」です。
    -classselection
        特定のクラスまたはパッケージの比較を計算します。パッケージは、単一のパッケージには「.*」、再帰的なパッケージには「.**」を追加して指定し
        ます。 パッケージをワイルドカード付きで指定してください。例: 'java.awt.*'。

* AllocationTree
  ?????:
    -format=html|xml
    -viewfilters=<カンマ区切りのリスト>
    -viewfiltermode=startswith|endswith|contains|equals
    -viewfilteroptions=casesensitive
    -aggregation=method|class|package|component
    -liveness=live|gc|all
    -classselection

* HotSpots
  ?????:
    -format=html|csv
    -viewfilters=<カンマ区切りのリスト>
    -viewfiltermode=startswith|endswith|contains|equals
    -viewfilteroptions=casesensitive
    -firstthreadselection
        特定のスレッドまたはスレッドグループの比較を計算します。 スレッドグループを 'group.*' 
        のように指定し、特定のスレッドグループ内のスレッドを 'group.thread' 
        のように指定します。スレッド名のドットはバックスラッシュでエスケープしてください。
    -secondthreadselection
        特定のスレッドまたはスレッドグループの比較を計算します。 メッセージは 'firstthreadselection' 
        が設定されている場合にのみ利用可能です。空の場合、'firstthreadselection' と同じ値が使用されます。 スレッドグループを
        'group.*' のように指定し、特定のスレッドグループ内のスレッドを 'group.thread' 
        のように指定します。スレッド名のドットはバックスラッシュでエスケープしてください。
    -threadstatus=all|running|waiting|blocking|netio
        エクスポートのためのスレッドステータスを選択します。デフォルト値は「running」です。
    -aggregation=method|class|package|component
    -differencecalculation=total|average
        呼び出し回数の差分計算方法を選択します。デフォルト値は総回数です。
    -unprofiledclasses=separately|addtocalling
    -valuesummation=self|total

* CallTree
  ?????:
    -format=html|xml
    -viewfilters=<カンマ区切りのリスト>
    -viewfiltermode=startswith|endswith|contains|equals
    -viewfilteroptions=casesensitive
    -firstthreadselection
    -secondthreadselection
    -threadstatus=all|running|waiting|blocking|netio
    -aggregation=method|class|package|component
    -differencecalculation=total|average

* TelemetryHeap
  ?????:
    -format=html|csv
    -minwidth=<ピクセル数>
        graphの最小幅(ピクセル単位)。デフォルト値は800です。
    -minheight=<ピクセル数>
        graphの最小高さ(ピクセル単位)。デフォルト値は600です。
    -valuetype=current|maximum|bookmark
        各スナップショットに対して計算される値のタイプ。デフォルトは現在の値です。
    -bookmarkname
        valuetype が 'bookmark' に設定されている場合、値を計算するためのブックマークの名前です。
    -measurements=maximum,free,used
        比較グラフに表示される測定値。複数の値はカンマで連結します。デフォルト値は「used」です。
    -memorytype=heap|nonheap
        メモリの種類を分析する必要があります。デフォルトは「heap」です。
    -memorypool
        特別なメモリプールを分析する場合は、このパラメータでその名前を指定できます。デフォルトは空で、つまり特別なメモリプールはありません。

* TelemetryObjects
  ?????:
    -format=html|csv
    -minwidth=<ピクセル数>
    -minheight=<ピクセル数>
    -valuetype=current|maximum|bookmark
    -bookmarkname
    -measurements=total,nonarrays,arrays
        比較グラフに表示される測定値。複数の値はカンマで連結します。デフォルト値は「total」です。

* TelemetryClasses
  TelemetryObjects??????????????????????
    -measurements=total,filtered,unfiltered

* TelemetryThreads
  TelemetryObjects??????????????????????
    -measurements=total,runnable,blocked,netio,waiting

* ProbeHotSpots
  ?????:
    -format=html|csv
    -viewfilters=<カンマ区切りのリスト>
    -viewfiltermode=startswith|endswith|contains|equals|wildcard|regex
    -viewfilteroptions=exclude,casesensitive
    -firstthreadselection
    -secondthreadselection
    -threadstatus=all|running|waiting|blocking|netio
    -aggregation=method|class|package|component
    -differencecalculation=total|average
    -probeid=<id>
        プローブの内部IDをエクスポートする必要があります。すべての利用可能な組み込みプローブを一覧表示し、カスタムプローブ名の説明を得るには「jp
        export --listProbes」を実行してください。

* ProbeCallTree
  ProbeHotSpots??????????????????????
    -format=html|xml

* ProbeTelemetry
  TelemetryObjects??????????????????????:
    -measurements
        計測値を示すテレメトリーグループ内の1ベースのインデックスです。複数の値をカンマで連結します(例: "1,
        2")。デフォルト値はすべての計測値を表示します。
    -probeid=<id>
    -telemetrygroup
        テレメトリーグループの1から始まるインデックスを設定します。これは、プローブテレメトリービューの上にあるドロップダウンリストで表示されるエン
        トリを指します。デフォルト値は「1」です。

自動出力形式

ほとんどのビューと比較は、複数の出力形式をサポートしています。デフォルトでは、出力形式は 出力ファイルの拡張子から推測されます:

  • .html

    ビューまたは比較はHTMLファイルとしてエクスポートされます。HTMLページで使用される画像を含む ディレクトリ jprofiler_images が作成されます。
  • .csv

    データはCSVデータとしてエクスポートされ、最初の行には列名が含まれます。

    Microsoft Excelを使用する場合、CSVは安定した形式ではありません。Windows上のMicrosoft Excelは 地域設定からセパレータ文字を取得します。JProfilerは、小数点セパレータとしてカンマを使用するロケールでは セミコロンをセパレータとして使用し、小数点セパレータとしてドットを使用するロケールではカンマを使用します。 CSVセパレータ文字を上書きする必要がある場合は、グローバルオプション csvseparator を設定することで 可能です。

  • .xml

    データはXMLとしてエクスポートされます。データ形式は自己記述的です。

異なる拡張子を使用したい場合は、format オプションを使用して 出力形式の選択を上書きすることができます。

スナップショットの分析

生成されたスナップショットにヒープダンプが含まれている場合は、bin/jpanalyze 実行ファイルを使用して、ヒープダンプ分析を事前に準備することができます。 その後、JProfilerのGUIでスナップショットを開くのが非常に速くなります。ツールの使用情報は以下に示されています:

使用法: jpanalyze [オプション] "スナップショットファイル" ["スナップショットファイル" ...]

"snapshot file" は、次のいずれかの拡張子を持つスナップショットファイルです:
           .jps, .hprof, .hpz, .phd, .jfr
      [options] は -option=value 形式のオプションのリストです

オプション:
    -obfuscator=none|proguard|yguard
        選択した難読化ツールに対してデオブスクエートします。デフォルトは「none」で、他の値を使用する場合はmappingFileオプションを指定
        する必要があります。
    -mappingfile=<file>
        選択した難読化ツールのマッピングファイル。
    -removeunreferenced=true|false
        参照されていないオブジェクトまたは弱参照されているオブジェクトを削除する必要がある場合。
    -retained=true|false
        保持サイズを計算します(最大のオブジェクト)。removeunreferencedがtrueに設定されます。
    -retainsoft=true|false
        参照されていないオブジェクトが削除された場合、ソフト参照を保持するかどうかを指定します。
    -retainweak=true|false
        参照されていないオブジェクトが削除された場合、弱い参照を保持するかどうかを指定します。
    -retainphantom=true|false
        参照されていないオブジェクトが削除された場合、ファントム参照を保持するかどうかを指定します。
    -retainfinalizer=true|false
        参照されていないオブジェクトが削除された場合、ファイナライザの参照を保持するかどうかを指定します。

removeUnreferencedretained、およびすべてのretain* コマンドラインオプションは、ヒープウォーカーオプションダイアログのオプションに対応しています。