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