7 Gprofng GUIの使用

gprofng-guiパッケージは、オプションでgprofngコマンドのGUIフロントエンドとして機能できるOracle Javaデスクトップ・アプリケーションを提供します。

また、実験で収集されたパフォーマンス・データをカスタマイズして表示し、実行可能なソフトウェア・プログラムのパフォーマンス・ボトルネックがどこにあるかについて有意義なインサイトを得るために使用できる様々なビューおよびフィルタも提供します。

詳細は、http://savannah.gnu.org/projects/gprofng-gui/およびgp-display-gui(1)マニュアル・ページを参照してください。

gprofng-guiのインストール

Oracle Linux 8gprofng-guiパッケージをインストールします。

gprofng-guiパッケージをインストールする前に、「gprofngのインストール」のステップに従います。

Oracle Javaランタイムもインストールします。Oracle Java SEのインストールの詳細は、https://docs.oracle.com/en/java/javase/index.htmlを参照してください。Oracle Cloud Infrastructureインスタンスで、Oracle LinuxへのOracle Java SEのインストールのステップに従います。

gprofng-guiパッケージは、実験の作成およびパフォーマンス・データの確認のためのオプションのグラフィカル・ユーザー・インタフェースを提供します。

  1. gprofng-guiパッケージをインストールします。

    dnfコマンドを使用して、パッケージをインストールします:

    sudo dnf install -y gprofng-gui
  2. gprofng-guiパッケージが正常にインストールされていることを確認します。

    gprofngコマンドを使用して、その存在を確認します:

    gprofng display gui --version
gprofng-guiパッケージがインストールされました。

gprofng-guiの開始

gprofngのGUIフロントエンドを使用して、新しい実験を作成します。

gprofng-guiパッケージをインストールします。詳細は、「gprofng-guiのインストール」を参照してください。

gprofng-guiツールは、ソフトウェア・エンジニアおよびテスターが開発中のアプリケーションのパフォーマンス・データを収集するために使用するGUIフロントエンドを提供します。

  1. 新しいgprofng-guiウィンドウを開きます。

    gprofngコマンドを使用して、アプリケーションを起動します:

    gprofng display gui
  2. 「ファイル」「アプリケーションのプロファイル」の順にクリックします。
  3. アプリケーションのプロファイル・ウィンドウで、新しい実験を構成します。
    1. プロファイルするアプリケーションの指定セクションで、アプリケーション・パス、コマンドライン・オプションおよび作業ディレクトリを設定します。

    2. 実験の指定セクションで、実験ファイル名と実験ディレクトリを設定します。

    3. 収集するデータ・タブで、実験中にgprofngが収集するデータを構成します。

  4. アプリケーションのプロファイル・ウィンドウで「実行」をクリックして、実験を開始します。

    「出力」タブに切り替えて、パフォーマン・スデータを収集しながら実験のライブ結果を確認します。

  5. 実験が完了したら、その実験をGUIで開くことができます。アプリケーションのプロファイル・ウィンドウで「終了」をクリックして、実験を早期に終了できます。

実験の実行中にバイナリ実行可能ファイルに対して収集されたパフォーマンス・データは、後で確認および比較するために保存されています。

gprofng-guiによる実験の確認

gprofngのGUIフロントエンドを使用して、以前の実験を確認します。

開始する前に、gprofngコマンドを使用して実験を作成します。詳細は、「gprofngの開始」を参照してください。

または、gprofng-guiツールを使用して実験を作成します。詳細は、「gprofng-guiの開始」を参照してください。

gprofng-guiには、ソフトウェア・プロファイリング実験で取得されたパフォーマンス・データの確認に役立つ様々なビューおよびフィルタが用意されています。

  1. 新しいgprofng-guiウィンドウを開きます。

    gprofngコマンドを使用して、アプリケーションを起動します:

    gprofng display gui
  2. 「ファイル」「実験を開く」の順にクリックします。

    最近作成された実験の場合は、ファイル・メニューの「最近の実験を開く」」の下に示されることもあります。

  3. 実験ディレクトリが事前にわかっている場合は、オプションで実験を1ステップで開くことができます。

    gprofngコマンドを使用して、オプションとして提供されている実験を使用してアプリケーションを起動します。

    gprofng display gui experiment1.er

    複数の実験が指定されている場合、それらはまとめて集計されます。

これで、gprofng-guiツールのメイン・ウィンドウに、実験が確認のために開かれました。

実験とgprofng-guiの比較

gprofngのGUIフロントエンドを使用して、実験を比較します。

開始する前に、gprofngコマンドを使用して実験を少なくとも2つ作成します。詳細は、「gprofngの開始」を参照してください。

または、gprofng-guiツールを使用して実験を少なくとも2つ作成します。詳細は、「gprofng-guiの開始」を参照してください。

gprofng-guiには、複数のソフトウェア・プロファイリング実験で取得されたパフォーマンス・データの比較に役立つ様々なビューおよびフィルタが用意されています。

  1. 新しいgprofng-guiウィンドウを開きます。

    gprofngコマンドを使用して、アプリケーションを起動します:

    gprofng display gui
  2. 「ファイル」「実験の比較」の順にクリックします。
  3. 実験の比較ウィンドウで、2つの実験を指定し、「OK」をクリックします。

    「追加」をクリックすると、3つ以上の実験を追加できます。「戻す」をクリックすると、比較順序を切り替えることもできます。

  4. 実験ディレクトリが事前にわかっている場合は、オプションで実験の比較を1ステップで開始することができます。

    gprofngコマンドを使用して、-cオプションを指定した後に関連する実験をリストし、アプリケーションを起動します。

    gprofng display gui -c experiment1.er experiment2.er

これで、gprofng-guiツールのメイン・ウィンドウに、2つ以上の実験が比較のために開かれました。

gprofng-guiのビュー・リファレンス

この表に、gprofng-guiのメイン・ウィンドウで実験が少なくとも1つ開いているときに、ビュー・メニューにデフォルトで表示されるビューのリストを示します。

ビュー 用途
コール元 - コール先 実験中に実行された関数間のコール関係を、パフォーマンス・メトリックとともに表示します。
コール・ツリー 実験中に実行される関数間のコール関係のためのツリー・ノード・グラフを表示します。
逆アセンブリ 実験中に実行される選択した関数の命令を、パフォーマンス・メトリックとともに表示します。
実験 メイン・ウィンドウに表示される実験を、それらに追加されたノートやコメントとともに一覧表示します。
フレーム・グラフ 一方の軸にはコール・スタックを、もう一方の軸には関数を示したコール・ツリーのカスタマイズ可能なグラフを表示します。関数の幅は、使用されたCPU時間を視覚的に示します。
関数 実験中に実行される関数を、CPUパフォーマンス・メトリックとともに一覧表示します。関数名をクリックすると、別の表示ペインに詳細情報が表示されます。
プロセス 実験中に作成されたプロセスを、パフォーマンス・メトリックとともに一覧表示します。診断目的でフィルタを使用します。
ソース/逆アセンブリ 選択した関数のソース・コードを、各行のパフォーマンス・メトリックとともに表示します。
スレッド 実験中に作成されたスレッドを、パフォーマンス・メトリックとともに一覧表示します。診断目的でフィルタを使用します。
タイムライン 収集されたパフォーマンス・データに基づいて、実験期間中のパフォーマンス動作を色分けして表示します。

コール元 - コール先ビューの操作

gprofng-guiによって提供されるコール元 - コール先ビューを使用して、ソフトウェア・プログラムのパフォーマンス・ボトルネックを関数コール・レベルで診断します。

コール元 - コール先ビューには、パフォーマンス・データの収集中に実行された関数間のコール関係が、パフォーマンス・メトリックとともに表示されます。

ビューは3つの水平パネルに分かれています。選択した関数が中央パネルに表示されます。選択した関数をコールするその他の関数が上部のパネルに表示され、選択した関数によってコールされる関数が下部のパネルに表示されます。

関数を選択すると、別の表示ペインに追加情報が表示されます。

コール・ツリー・ビューの操作

gprofng-guiによって提供されるコール・ツリー・ビューを使用して、ソフトウェア・プログラムのパフォーマンス・ボトルネックを関数コール・レベルで診断します。

コール・ツリー・ビューには、パフォーマンス・データの収集中に実行された関数間のコール関係を反映したツリー・グラフが、パフォーマンス・メトリックとともに表示されます。

各関数コールには、関連する関数コールのリストを表示するために開いたり折りたたんだりできるツリー・ノードが割り当てられます。また、これらのノードにも、必要に応じて開いたり折りたたんだりできるツリー・ノードが割り当てられます。関数を選択すると、選択の詳細ウィンドウが更新され、その関数およびパフォーマンス・メトリックの詳細が表示されます。

最も重大なパフォーマンス・ボトルネックが含まれる関数コールのチェーンを確認するには、任意のノードを右クリックし、「最もホットなブランチの展開」を選択します。

関数ビューの操作

gprofng-guiによって提供される関数ビューを使用して、ソフトウェア・プログラムのパフォーマンス・ボトルネックを関数レベルで診断します。

関数ビューには、実験中にパフォーマンス・データが収集されている間に実行されたすべての関数のリストが表示されます。

デフォルトでは、関数はCPU時間使用率データの横に示されます。関数名をクリックすると、別の表示ペインに詳細が表示されます。

関数名をダブルクリックすると、その関数が新しいソース・ビューで開き、パフォーマンス・メトリックの注釈が付けられたコード行のリストが別の表示ペインに表示されます。

関数は、メイン・ウィンドウでソース・コードとパフォーマンス・データの注釈の間により大きな分割ペイン・ビューを表示するために、ソース/逆アセンブリ・ビューで確認することもできます。計算コストの高い行は、異なる背景色で強調表示されます。

タイムライン・ビューの操作

gprofng-guiによって提供されるタイムライン・ビューを使用して、実行の特定のステージでトリガーされたり、時間の経過とともに増大するソフトウェア・プログラムのパフォーマンス・ボトルネックを診断します。

タイムライン・ビューには、実験の実行中に収集されたパフォーマンス・データの色分けされたタイムライン・マップが表示されます。

時間軸にはタイムラインが表示され、もう一方の軸では一連のバーが実験中に生成された各スレッドを表します。アプリケーションのコール・スタックは、縦バーとしてプロットされます。実験中にコールされる各関数またはメソッドには異なる色が割り当てられ、それらの色は、タイムラインでそれらのコールを表すために縦バーで使用されます。

OSにはマップ領域の上部に独自のバーがあり、その背景色はアプリケーションがまだユーザースペースで実行されているかどうかを示します。

これらのバー内の任意の場所をクリックすると、タイムライン内の特定のポイントが強調表示され、詳細が別の表示ペインに表示されます。

タイムラインのスケールを変更するには、ズーム・イン・アイコンとズーム・アウト・アイコンをクリックするか、マウス・カーソルで時間軸の特定の領域を強調表示して[Enter]キーを押します。

提示されたナビゲーション矢印をクリックすると、タイムライン内のスレッドとイベント間でタイムラインが移動し、関連する表示ペインも更新されます。

タイムライン・ビューは、スレッドではなくCPU使用率やプロセスなど、時間の経過とともに他のパフォーマンス・メトリックを表示するようにカスタマイズすることもできます。データのグループ化基準プルダウン・メニューを使用して、表示するパフォーマンス・メトリックを選択します。

関数の色ボタンをクリックして、実験中にコールされた関数の一部または全部に割り当てられている色を変更します。1つを除いてすべての関数が同じ色に設定されている場合は、タイムラインを通じてその特定の関数のパフォーマンスをより簡単に追跡できます。

タイムライン・ビューでは、パフォーマンス・データをフィルタ処理して、最も関連性の高いスレッドまたは関数のみを表示することもできます。それらのフィルタ・オプションは、ツール・メニューに提示されます。また、タイムライン・ビュー内のフィルタ・アイコンを使用して、フィルタのデフォルトの選択を適用できます。