Oracle Solaris Studio 12.2: パフォーマンスアナライザ

フィルタ式の例

ここでは、er_print -filters コマンドまたはアナライザのフィルタダイアログボックスで使用できるフィルタ式の例を示します。

er_print -filters コマンドでは、フィルタ式は、次のように単一引用符で囲まれます。


er_print -filters 'FNAME("myfunc") SOME IN USTACK' -functions test.1.er

例 5–1 名前とスタックによる関数のフィルタリング

ユーザー関数スタックから myfunc という名前の関数をフィルタリングするには、次のようにします。

FNAME("myfunc") SOME IN USTACK



例 5–2 スレッドと CPU によるイベントのフィルタリング

CPU 2 上でのみ実行したスレッド 1 からのイベントを表示するには、次のようにします。

THRID == 1 && CPUID == 2



例 5–3 インデックスオブジェクトによるイベントのフィルタリング

インデックスオブジェクト THRCPUCPUID<<16|THRID として定義されている場合、次のフィルタは、上記の CPU 2 上で実行したスレッド 1 からのイベントを表示する場合のフィルタと等価です。

THRCPU == 0x10002



例 5–4 指定の時間内に発生したイベントのフィルタリング

5 秒と 9 秒の間に発生した実験 2 のイベントをフィルタリングするには、次のようにします。

EXPID==2 && TSTAMP >= 5000000000 && TSTAMP < 9000000000



例 5–5 特定の Java クラスのイベントのフィルタリング

スタック内の特定の Java クラスのメソッドを持つイベントをフィルタリングするには、次のようにします。(ユーザー表示モードの場合)

FNAME("myClass.*") SOME IN USTACK



例 5–6 内部関数 ID と呼び出し順序によるイベントのフィルタリング

関数 ID が既知である (アナライザに表示されている) 場合、マシン呼び出しスタック内の特定の呼び出し順序を含むイベントをフィルタリングするには、次のようにします。

(314,272) ORDERED IN MSTACK



例 5–7 状態または期間によるイベントのフィルタリング

describe コマンドにより、時間プロファイリング実験の次のプロパティが一覧表示された場合は、


MSTATE    UINT32  Thread state
NTICK     UINT32  Duration

次のフィルタを使用して、特定の状態のイベントを選択できます。

MSTATE == 1

または、次のフィルタを使用して、特定の状態にあり、期間が 1 クロック刻みより長いイベントを選択できます。

MSTATE == 1 && NTICK > 1