アプリケーション・パフォーマンスを分析および向上する方法

Oracle Solaris Studio 12.3

Darryl Gove、2011年12月


この記事では、Oracle Solaris Studioに付属しているパフォーマンス・アナライザを使用して、アプリケーションのパフォーマンスを分析および向上する方法について説明します。




はじめに

コンピュータ・システムがますます強力になるにつれて、アプリケーション・パフォーマンスが重要な要素として浮上し、パフォーマンスの低さがアプリケーション障害と見なされることが増えています。 現在、開発者は、ソース・コードの重要な部分を効率化するとともに、アプリケーションの精度に影響を及ぼさずに、プログラム上のエラーやコーディングの欠陥を見つける必要があることを強く認識しています。 Oracle Solaris Studioに付属しているパフォーマンス・アナライザを使用すると、これらの作業に役立ちます。

アプリケーションの分析を支援するため、パフォーマンス・アナライザでは、機能レベルやロード・オブジェクト・レベルでのデータ表示を含め、収集したパフォーマンス・データをさまざまな方法で表示できます。 表示するメトリックやメトリックの表示順序を制御できます。

パフォーマンス・アナライザの使用

パフォーマンス・アナライザを使用するには、任意のレベルのパラレル化および最適化でアプリケーションをコンパイルします。

: パラレル化と最適化については、詳しくは『アプリケーションのパラレル・パフォーマンスを最適化する方法』と『アプリケーションのシリアル・パフォーマンスを最適化する方法』を参照してください。

また、ソース・コードを参照し、ソース・コードの行に時間を割り当てるには、-gオプションも指定する必要があります。

次に、collectコマンドを使用してアプリケーションを実行します。 このコマンドでは、PIDを指定できます。たとえば、次のようにします。

% collect -P <pid>

または、collectコマンドを使用して、アプリケーションとそのパラメータを起動することもできます。

% collect <application> <parameters> 

collectコマンドを使用すると、アプリケーション実行時の評価パフォーマンス・データが収集されて、分析プロセスで後に使用するtest.1.erという名前の評価ファイルにデータが保存されます。 collectコマンドで、次の項目に関する情報を取得できます。

  • 時間ベースのプロファイル
  • スレッド同期遅延イベントと待機時間
  • オペレーティング・システムの概要情報
  • ハードウェアカウンタのオーバーフロー・プロファイル(これをサポートするハードウェア・サポートを備えたシステムで対応)
  • 実行統計情報、アドレス空間データなどのグローバルな情報

評価が完了したら、コマンドラインまたはアナライザのGUIのFileメニューを使用して、test.1.erファイルからパフォーマンス・アナライザに評価データをロードします。

たとえば、パフォーマンス・アナライザを起動してコマンドラインから1つまたは複数の評価ファイルをロードするには、次のコマンドを入力します。

% analyzer <control-options> <experiment-file(s)>

パフォーマンス・アナライザのGUI

以降の項では、パフォーマンス・アナライザのGUIに表示されるいくつかのタブについて説明します。 これらのタブおよびその他のタブについて、詳しくはOracle Solaris Studioパフォーマンス・アナライザのドキュメントを参照してください。

Functionsタブ

Functionsタブ(図1)には、機能の一覧とこれらの機能のメトリックが表示されます。 これらのメトリックは、評価で収集されたデータから取得されます。 メトリックは、排他的にも包括的にもできます。 排他的なメトリックにはその機能自体内の使用状況が表示され、包括的なメトリックにはその機能内およびその機能が呼び出したすべての機能の使用状況が表示されます。

図1

図1. Functionタブで、時間がかかった箇所を把握

Callers-Calleesタブ

Callers-Calleesタブでは、中央のペインに選択した機能が表示され、上部のペインにその機能のコール元が表示され、下部のペインにその機能コール先が表示されます(図2)。

選択した機能については、関連するメトリックにその機能に割り当てられた時間が表示されます。 コール先については、関連するメトリックに、選択した機能からのコールに割り当てられたコール先の包括的なメトリックの部分が表示されます。

図2

図2. Callers-Calleesタブで、選択した機能に割り当てられた時間を把握

Sourceタブ

-g(デバッグ)オプションを使用してコードをコンパイルした場合、選択した機能のソース・コードとともに、各ソース行のパフォーマンス・メトリックに関する注釈とコンパイラのコメントを表示できます(図3)。

図3

図3. Sourceタブで、各ソース行のパフォーマンス・メトリックを把握

Disassemblyタブ

Disassemblyタブ(図4)には、アプリケーションのアセンブリ言語表示が表示されます。 -g(デバッグ)オプションを使用してアプリケーションをコンパイルした場合、表示には逆アセンブリの情報とソース・コードが交互に配置されます。

図4

図4. Disassemblyタブで、逆アセンブリされたコードを把握

Timelineタブ

Timelineタブ(図5)では、選択したイベントのアプリケーション・タイムラインとコール・スタックを表示できます。

図5

図5. Timelineタブでは、アプリケーション・タイムラインとコール・スタックのグラフ表示が可能

追加情報

Oracle Solaris Studioについては、詳しくはOracle Solaris Studioの完全な製品ドキュメントを参照してください。

次のドキュメントも参照してください。

リビジョン1.0、13.12.11

FacebookTwitter、またはOracle Blogsで最新情報をご確認ください。