JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Oracle Solaris Studio 12.2: パフォーマンスアナライザ
search filter icon
search icon

ドキュメントの情報

はじめに

1.  パフォーマンスアナライザの概要

2.  パフォーマンスデータ

3.  パフォーマンスデータの収集

4.  パフォーマンスアナライザツール

5.   er_print コマンド行パフォーマンス解析ツール

er_print の構文

メトリックリスト

関数リストを制御するコマンド

functions

metrics metric_spec

sort metric_spec

fsummary

fsingle function_name [N]

呼び出し元 - 呼び出し先リストを管理するコマンド

callers-callees

csingle function_name [N]

cprepend function-name [N | ADDR]

cappend function-name [N | ADDR]

crmfirst

crmlast

呼び出しツリーリストを制御するコマンド

calltree

リークリストと割り当てリストを管理するコマンド

leaks

allocs

ソースリストと逆アセンブリリストを管理するコマンド

pcs

psummary

lines

lsummary

source|src { filename | function_name } [ N]

disasm|dis { filename | function_name } [ N]

scc com_spec

sthresh value

dcc com_spec

dthresh value

cc com_spec

setpath path_list

addpath path_list

pathmap old-prefix new-prefix

ハードウェアカウンタデータ空間およびメモリーオブジェクトリストを制御するコマンド

data_objects

data_single name [N]

data_layout

memobj mobj_type

mobj_list

mobj_define mobj_type index_exp

インデックスオブジェクトリストを制御するコマンド

indxobj indxobj_type

indxobj_list

indxobj_define indxobj_type index_exp

OpenMP インデックスオブジェクトのコマンド

OMP_preg

OMP_task

スレッドアナライザ対応コマンド

races

rdetail race_id

deadlocks

ddetail deadlock_id

実験、標本、スレッド、および LWP を一覧表示するコマンド

experiment_list

sample_list

lwp_list

thread_list

cpu_list

実験データのフィルタリングを制御するコマンド

フィルタ式の指定

filters filter_exp

フィルタ式のオペランドトークンの一覧表示

describe

フィルタリング用の標本、スレッド、LWP、および CPU の選択

選択リスト

選択用のコマンド

sample_select sample_spec

lwp_select lwp_spec

thread_select thread_spec

cpu_select cpu_spec

ロードオブジェクトの展開と短縮を制御するコマンド

object_list

object_show object1,object2,...

object_hide object1,object2,...

object_api object1,object2,...

objects_default

object_select object1,object2,...

メトリックスを一覧するコマンド

metric_list

cmetric_list

data_metric_list

indx_metric_list

出力を制御するコマンド

outfile { filename | - }

appendfile filename

limit n

name { long | short } [ :{ shared_object_name | no_shared_object_name } ]

viewmode { user| expert | machine }

compare { on | off }

その他の情報を出力するコマンド

header exp_id

ifreq

objects

overview exp_id

statistics exp_id

デフォルト値を設定するコマンド

dmetrics metric_spec

dsort metric_spec

en_desc { on | off | =regexp }

パフォーマンスアナライザにのみデフォルト値を設定するコマンド

tabs tab_spec

rtabs tab_spec

tlmode tl_mode

tldata tl_data

その他のコマンド

procstats

script file

version

quit

help

式の文法

フィルタ式の例

er_print コマンドの例

6.  パフォーマンスアナライザとそのデータについて

7.  注釈付きソースと逆アセンブリデータについて

8.  実験の操作

9.  カーネルプロファイリング

索引

メトリックリスト

多くの er_print コマンドでは、メトリックキーワードのリストを使用します。リストの構文は次のとおりです。

metric-keyword-1[:metric-keyword2…]

測定されたデータに基づく動的メトリックスの場合、メトリックのキーワードは、メトリックフレーバー文字列、メトリック表示形式文字列、およびメトリック名文字列の 3 つの部分から構成されます。これらは、空白を入力せずに次のように続けて指定します。

flavorvisibilityname

実験内のロードオブジェクトの静的プロパティー (名前、アドレス、およびサイズ) に基づく静的メトリックスの場合、メトリックのキーワードは、メトリック名とその前に付加されるメトリック表示形式文字列 (省略可能) を空白なしに結合して構成されます。

[visibility]name

メトリックの flavor 文字列と visibility 文字列は、フレーバー文字と表示形式文字を使用して指定します。

指定可能なメトリックフレーバー文字を表 5-1 に示します。複数のフレーバー文字を含むメトリックキーワードが展開されて、メトリックキーワードリストになります。たとえば、ie.user は、展開されて i.user:e.user になります。

表 5-1 メトリックフレーバー文字

文字
内容の説明
e
排他的メトリック値を表示します。
i
包括的メトリック値を表示します。
a
属性メトリック値を表示します (呼び出し元 - 呼び出し先メトリックの場合のみ)。
d
データ空間メトリック値を表示します (データ派生メトリックスの場合のみ)。

指定可能なメトリック表示形式文字を表 5-2 に示します。指定可能なメトリック表示形式文字をTable 5–2 に示します。表示形式文字列の文字の順序は重要ではありません。対応するメトリックスの表示順序には影響しません。たとえば、i%.useri.%user はともに i.user:i%user と解釈されます。

表示形式だけが異なるメトリックスは、常に標準の順序で一緒に表示されます。表示形式だけが異なる 2 つのメトリックキーワードがほかのキーワードで区切られている場合は、標準の順序で 2 つのメトリックスの 1 つ目の位置にメトリックスが表示されます。

表 5-2 メトリック表示形式文字

文字
内容の説明
.
メトリックを時間で表示します。この指定は、サイクルカウントを計測する時間メトリックスとハードウェアカウンタメトリックスに適用されます。そのほかのメトリックスは「+」と解釈されます。
%
プログラム全体のメトリックを百分率で表示します。呼び出し元 - 呼び出し先リストの属性メトリックスの場合は、選択した関数の包括的メトリックにの割合が表示されます。
+
メトリックを絶対値で表示します。ハードウェアカウンタの場合、この値はイベントの回数です。時間メトリックスの場合は「.」と解釈されます。
!
メトリック値を表示しません。ほかの表示形式文字と組み合わせることはできません。

フレーバー文字列と可視文字列のそれぞれが複数の文字から構成されている場合は、フレーバー文字列が先に展開されます。すなわち、ie.%user は展開されて i.%user:e.%user になり、i.user:i%user:e.user:e%user と解釈されます。

静的メトリックスの場合、ソート順序の定義という観点からは、表示形式文字のピリオド (.)、正符号 (+)、パーセント記号 (%) は同等と見なされます。つまり、sort i%usersort i.usersort i+user はすべて、「どのような形式で表示するにせよ、包括的ユーザー CPU 時間を基準にソートする」ことを意味します。また、sort i!user は、「表示するかどうかに関係なく、包括的ユーザー CPU 時間を基準にソートする」という意味になります。

可視文字の感嘆符 (!) を使用すると、各フレーバーのメトリックに組み込みのデフォルト値を置き換えられます。

メトリックリスト内で同じメトリックを複数回表示した場合は、最初に出現したものだけが処理され、それ以後のものは無視されます。名前付きメトリックがリストにない場合は、そのメトリックがリストに付加されます。

表 5-3 に、時間メトリックス、同期遅延メトリックス、メモリー割り当てメトリックス、MPI トレースメトリックス、および 2 つの一般的なハードウェアカウンタメトリックスに指定可能な er_print メトリック名文字列を示します。ほかのハードウェアカウンタメトリックスの場合、メトリック名文字列はカウンタ名と同じです。読み込まれた実験に適用できるすべてのメトリック名文字列のリストは、metric_list コマンドで取得できます。カウンタ名は、collect コマンドを引数なしで使用することによって一覧表示できます。ハードウェアカウンタについての詳細は、「ハードウェアカウンタオーバーフローのプロファイルデータ」を参照してください。

表 5-3 メトリック名文字列

カテゴリ
文字列
内容の説明
時間メトリックス
user
ユーザー CPU 時間
wall
実経過時間
total
LWP 合計時間
system
システム CPU 時間
wait
CPU 待ち時間
ulock
ユーザーロック時間
text
テキストページフォルト時間
data
データページフォルト時間
owait
ほかの待ち時間
時間ベースのプロファイルメトリックス
mpiwork
MPI ランタイムで作業する (処理の要求やメッセージなど) 時間
mpiwait
MPI ランタイムで、イベント、バッファー、またはメッセージを待っている時間
ompwork
作業を直列または並列で実行する時間
ompwait
OpenMP ランタイムが同期を待っている時間
同期遅延メトリックス
sync
同期待ち時間
syncn
同期待ち回数
MPI トレースメトリックス
mpitime
MPI 呼び出しに費やされた時間
mpisend
開始された MPI ポイントツーポイント送信数
mpibytessent
MPI で送信されるバイト数
mpireceive
完了した MPI ポイントツーポイント受信数
mpibytesrecv
MPI で受信されるバイト数
mpiother
その他の MPI 関数の呼び出し数
メモリー割り当てメトリックス
alloc
割り当て数
balloc
割り当てバイト数
leak
リーク数
bleak
リークバイト数
ハードウェアカウンタオーバーフローのメトリックス
cycles
CPU サイクル
insts
発行された命令
スレッドアナライザのメトリックス
raccesses
データ競合のアクセス
deadlocks
デッドロック

表 5-3 に示した名前文字列のほかに、2 つの名前文字列をデフォルトのメトリックスリスト内でのみ使用できます。この 2 つの文字列は、任意のハードウェアカウンタ名に一致する hwc と、任意のメトリック名文字列に一致する any です。また、cyclesinsts は、SPARC プラットフォームと x86 プラットフォームに共通のものですが、それ以外のアーキテクチャー固有のフレーバーも存在します。使用可能なすべてのカウンタを一覧表示するには、引数を指定せずに collect コマンドを使用します。

読み込んだ実験から使用可能なメトリックスを確認するには、metric_list コマンドを使用します。