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

印刷ビューの終了

更新: 2014 年 12 月
 
 

jsynprog データの検査

この手順では、前のセクションの説明に従って実験をすでに作成してあることを前提としています。

  1. jsynprog ディレクトリからパフォーマンスアナライザを起動して、実験の名前が test.1.er ではない場合は名前を指定して次のように実験をロードします。

    % analyzer test.1.er

    実験が開くと、パフォーマンスアナライザの「概要」ページが表示されます。

    image:パフォーマンスアナライザの概要

    現在、パフォーマンスアナライザのツールバーには、最初は「ユーザーモード」に設定されているビューモードセレクタがあり、これはプログラムのユーザーモデルを示しています。

    「概要」には、実験が約 81 秒実行されたが、使用合計時間は 1600 秒を超えたことを示しており、プロセス内には平均で 20 個のスレッドがあったことを意味しています。

  2. 「休眠時間」メトリックと「ユーザーロック時間」メトリックのチェックボックスにチェックマークを付けて、データビューに追加します。

    image:「休眠時間」と「ユーザーロック時間」の選択されたチェックボックス

    これらのメトリックが追加されたデータの外観を示すために「メトリックのプレビュー」が更新されます。

  3. ナビゲーションパネルで「スレッド」ビューを選択すると、スレッドのデータが表示されます。

    image:パフォーマンスアナライザの「スレッド」ビュー

    スレッド 2 のみでかなりの「CPU 合計時間」が集計されました。ほかの各スレッドには、「CPU 合計時間」の少数のプロファイルイベントのみがありました。

  4. 「スレッド」ビューで任意のスレッドを選択して、そのスレッドに関するすべての情報を右側の「選択の詳細」ウィンドウに表示します。

    スレッド 1 とスレッド 2 を除くほとんどすべてのスレッドがすべての時間を「ユーザーロック」状態で費やしたことがわかるはずです。これは、JVM がそれ自体を内部で同期する方法を示しています。スレッド 1 は、ユーザー Java コードを起動してから、終了するまでスリープ状態になります。

  5. 「概要」に戻って、「休眠時間」と「ユーザーロック時間」の選択を解除します。

  6. ナビゲーションパネルで「関数」ビューを選択して、列ヘッダーをクリックして「排他的 CPU 合計時間」、「包括的 CPU 合計時間」、または「名前」でソートします。

    降順または昇順でソートできます。

    リストを「包括的 CPU 合計時間」で降順にソートしたままにして、最上位の関数 jsynprog.main() を選択します。そのルーチンは、JVM が実行を開始するために呼び出す初期ルーチンです。

    image:「呼び出し元/呼び出し回数」パネルがあるパフォーマンスアナライザの「関数」ビュー

    「関数」ビューの下部にある「呼び出し元/呼び出し回数」パネルは、jsynprog.main() 関数が <Total> によって呼び出されることを示しており、これはスタックの上部にあったことを意味しています。

    パネルの「呼び出し回数」側には、jsynprog.main() が、Java-C++ プロファイリングチュートリアルについてに示されている、メインルーチンから直接呼び出されるサブタスクごとにさまざまな異なるルーチンを 1 つ呼び出すことが示されています。リストには少数のほかのルーチンも含まれています。