Oracle® Solaris Studio 12.4: パフォーマンスアナライザチュートリアル

印刷ビューの終了

更新: 2014 年 12 月
 
 

ハードウェアカウンタ命令プロファイリングのメトリックの理解

このセクションでは、一般ハードウェアカウンタを使用して、関数で実行される命令数を確認する方法を示します。

  1. 「概要」ページを選択し、「一般ハードウェアカウンタ」の下にある「命令の実行」という名前の「HW カウンタプロファイリング」メトリックを有効にします。

  2. 「関数」ビューに戻り、「名前」列見出しをクリックして、アルファベット順でソートします。

  3. 下にスクロールして、compute()computeA()computeB() などの関数を探します。

    image:パフォーマンスアナライザの「関数」ビューと命令プロファイリングのメトリック

    computeB() および computeF() を除くすべての関数で、「排他的 CPU 合計時間」および排他的命令の実行の数値がほとんど同じです。

  4. computeF() を選択して「ソース」ビューに切り替えます。computeF() をダブルクリックすると、ワンステップでこれを実行できます。

    image:パフォーマンスアナライザでの computeF の「ソース」ビュー

    computeF() は計算カーネルが異なり、1 を加算するために関数 addone() を呼び出す一方で、ほかの compute*() 関数は加算を直接実行します。ほかの関数とパフォーマンスが異なっているのは、そのことが原因です。

  5. 「ソース」ビューを上下にスクロールして、すべての compute*() 関数を見てみます。

    computeB() を含むすべての compute*() 関数が、ほとんど同じ命令実行数を示しています。その中で、computeB() は特異な CPU 時間コストを示しています。

    image:パフォーマンスアナライザの「ソース」ビューで computeB 関数の「CPU 合計」が高値を示す

    次のセクションでは、computeB() の CPU 時間合計がそのような高値を示す理由を探ります。