JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Oracle Solaris Studio 12.3: パフォーマンスアナライザ     Oracle Solaris Studio 12.3 Information Library (日本語)
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 -h コマンドをほかの引数なしで使用することによって取得できます。ハードウェアカウンタについての詳細は、「ハードウェアカウンタオーバーフローのプロファイルデータ」を参照してください。

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

カテゴリ
文字列
内容の説明
時間メトリック
user
ユーザー CPU 時間
wall
時計時間
total
スレッド合計時間
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 プラットフォームに共通のものですが、それ以外のアーキテクチャー固有のフレーバーも存在します。

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