ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris Studio 12.3: パフォーマンスアナライザ Oracle Solaris Studio 12.3 Information Library (日本語) |
パフォーマンスアナライザには、プログラムで関心のある領域にフォーカスできるようにデータをフィルタリングするための方法がいくつか用意されています。フィルタリングする場合は、表示するデータの条件を指定します。フィルタが適用されると、その条件を満たしていないデータは、フィルタリングをサポートするすべてのアナライザタブ内のビューから削除されます。
パフォーマンスアナライザで実験をはじめて開くと、読み込まれたすべての実験内のすべての関数、各実験のすべてのスレッドと CPU、およびその実験によってカバーされている期間全体のデータが表示されます。
次の項目でフィルタリングできます。
実験 - 現在読み込まれている実験の中から、メトリックを表示する実験を選択
スレッド - 特定のスレッド ID から収集されたデータを選択
CPU - 特定の CPU ID から収集されたデータを選択
標本 - 特定の標本ポイントで収集されたデータを選択
呼び出しスタック - 特定の関数を含む呼び出しスタックから収集されたデータを選択
呼び出しツリーの分岐 - 呼び出しツリーの特定の分岐の呼び出しスタックから収集されたデータを選択
時間範囲 - 特定の時間範囲内に収集されたデータを選択
ラベル - 特定の期間を識別するラベルで指定されたデータを選択
次の複数の場所からフィルタリングできます。
「関数」、「呼び出し元-呼び出し先」、「タイムライン」などのデータタブでは、このタブ内の関数名などのデータを右クリックすることによって、ポップアップメニューから定義済みフィルタを選択できます。これらのフィルタは、コンテキストフィルタと呼ばれます。
「フィルタの管理」ダイアログボックスの「実験」および「一般」タブを使用すると、データを表示する実験、スレッド、CPU、または標本を選択できます。
「フィルタの管理」ダイアログボックスの「カスタム」タブを使用すると、フィルタ式を編集して、表示されるデータを正確に定義するカスタムフィルタを作成できます。
フィルタを設定すると、データはすべてのアナライザタブでフィルタリングされます。フィルタを結合して、プログラム実行の特に注意が必要な領域のメトリックを表示できます。
注 - ここで説明されているフィルタは、「「MPI タイムラインコントロール」タブ」および 「「MPI グラフコントロール」タブ」で説明されている MPI フィルタリングとは関係ありません。これらのフィルタは、「MPI グラフ」タブに影響しません。
コンテキストフィルタは、パフォーマンスアナライザ内のいくつかのデータタブで使用可能な、コンテキスト固有のフィルタです。コンテキストフィルタにアクセスするには、マウスで右クリックするか、またはキーボードの Shift-F10 キーを押します。コンテキストフィルタを選択すると、データはただちにフィルタリングされます。
コンテキストフィルタは一般に、フォーカスしたいタブで 1 つ以上の項目を選択し、マウスを右クリックして、適切なフィルタを選択することによって使用します。ほとんどのデータタブでは、フィルタを使用すると、そのフィルタで指定された条件を満たすデータを含めるようにすることも、含めないようにすることもできます。これにより、フィルタを使用して、プログラムの特定の領域のデータにフォーカスしたり、特定の領域のデータを除外したりすることができます。
次のいくつかの方法でコンテキストフィルタを使用できます。
複数のフィルタを追加してデータを絞り込みます。フィルタは論理的な AND 関係で結合されるため、データがすべてのフィルタに一致することが必要です。
あるタブでフィルタを追加したあと、フィルタリングされたデータを別のタブで表示します。たとえば、「呼び出しツリー」タブでもっともホットな分岐を検索できたら、「フィルタを追加: 選択した分岐を含むスタックのみを含める」を選択し、「関数」タブに移動してそのコード分岐で呼び出された関数のメトリックを表示します。
複数のタブから複数のフィルタを追加して、非常に具体的な一連のデータを作成します。
カスタムフィルタを作成するための基礎としてコンテキストフィルタを使用します。...を参照してください。
「フィルタの管理」ダイアログボックスを使用して、実験、スレッド、CPU、および標本に対する単純なフィルタリングを実行できます。このフィルタリングは、コンテキストフィルタとともに使用できます。
「フィルタの管理」ダイアログボックスには、次の複数の方法でアクセスできます。
「表示」⇒「フィルタの管理」を選択する
ツールバーの「フィルタの管理」ボタンをクリックする
「関数」タブなどのデータタブを右クリックし、コンテキストメニューから「フィルタの管理」を選択する
「実験」タブを右クリックし、「実験をフィルタ」を選択する
「フィルタの管理」ダイアログボックスを使用すると、特定の実験、標本ポイント、スレッド、および CPU から表示するデータを選択するための一般的なフィルタリングを実行できます。データを表示する項目を指定するには、「実験」タブと「一般」タブを一緒に使用します。「実験」および「一般」タブで行った選択は、フィルタリングのために論理 AND (&& 演算子) を使用して組み合わせられます。データがデータタブに含まれるには、これらのタブで行ったすべての選択に一致する必要があります。
アナライザのヘルプには、「フィルタの管理」ダイアログボックスを使用するための説明が含まれています。
このダイアログボックスには、フィルタをカスタマイズするために使用できる「カスタム」タブも表示されます。詳細は、次の節を参照してください。
「カスタム」タブを使用すると、ユーザー独自のフィルタ式を入力したり、以前に適用されたフィルタを編集してカスタムフィルタを作成したりすることができます。「カスタム」タブ内のフィルタは、「フィルタの管理」ダイアログボックスの「実験」および「一般」タブを通して適用されるフィルタとは分離されています。
パフォーマンスアナライザのデータタブでコンテキストフィルタを選択すると、フィルタ式が生成され、データのフィルタリングにただちに適用されます。また、生成されたフィルタ式は「カスタム」タブ内のテキストボックスにも追加されるため、これをカスタムフィルタを作成するための開始点として使用できます。
フィルタを編集したあと、「フィルタ指定」パネルの上にある矢印ボタンを使用して編集を元に戻したり、やり直したりすることができます。また、テキストエディタの場合と同様に、Ctrl-Z キーを押して元に戻したり、Shift-Ctrl-Z キーを押してやり直したりすることもできます。
フィルタ式では、標準的な C の関係演算子 (==、>=、&&、|| など) を実験に固有のキーワードとともに使用します。アナライザで開かれている実験で使用できるキーワードを表示するには、「カスタム」タブの「キーワードの表示」ボタンをクリックします。
フィルタ式の構文は、er_print でのフィルタリングに使用される構文と同じです。フィルタ式については、「式の文法」を参照してください。
編集されたフィルタは、「了解」または「適用」をクリックするまでデータタブに影響を与えません。「適用」をクリックしても、「カスタム」タブは開いたままです。アナライザのデータタブでコンテキストフィルタを選択すると、その選択によって生成されたフィルタ式を「フィルタ指定」テキストボックスに追加された状態で表示できます。新しい各フィルタは、&& (論理「AND」演算子) で始まる新しい行に配置されます。実験データが表示されるには、最初のフィルタおよび 2 番目のフィルタおよび 3 番目のフィルタなど、すべてのフィルタに一致する必要があります。データを、たとえば最初のフィルタまたは 2 番目のフィルタに一致するようにする場合は、&& を || に変更できます。
「カスタム」タブでは、次の節で説明されているラベルを使用したフィルタリングも可能です。
ラベルは、実験の一部に割り当てることのできる名前です。er_label コマンドを使用すると、実験内のある期間にラベル名を割り当てることができ、そのラベルはその実験とともに維持されます。ラベルを使用すると、er_print コマンドまたはパフォーマンスアナライザで実験データをフィルタリングして、ラベル付けされた期間中に収集されたデータを含めたり、除外したりすることができます。
er_label ユーティリティーを使用してラベルを作成する方法については、「実験へのラベル付け」を参照してください。
パフォーマンスアナライザでは、「フィルタの管理」ダイアログボックスの「カスタム」タブで、ラベル付けされた期間からデータをフィルタリングできます。「フィルタ指定」パネルでラベル名を入力し、「適用」をクリックして、そのラベルで指定されたデータをフィルタリングします。このラベルが、TSTAMP キーワードで数値比較を使用するフィルタ式のニックネームとして機能するため、数値比較を使用する必要はありません。ラベルを && で始まる個別の行に追加することによって、そのラベルを「カスタム」タブ内のほかのフィルタと組み合わせることができます。
パフォーマンスアナライザで開かれている実験にラベルが割り当てられているかどうかを確認するには、「カスタム」タブの「キーワードの表示」ボタンをクリックします。また、er_print -describe コマンドを使用しても同じ情報を表示できます。ラベルはこの表示の最初に一覧表示され、そのラベルによって実装された TSTAMP キーワードを含む実際のフィルタ式が含まれています。
ラベルフィルタを適用したあと、「タイムライン」タブをクリックすると、そのラベルで定義された間隔内のデータが削除されていることを確認できます。また、このデータは、フィルタリングをサポートするほかのタブでもフィルタリングされます。