プロファイラ

<< 目次を表示 >>

ページ位置:  プログラムの動作解析 >

プロファイラ

 

ソフトウェアアプリケーションを実行すると、想定よりも動作速度が遅く、その原因を調査することは少なくありません。また、単純にソフトウェアアプリケーションの動作の内容を知りたいということもあるでしょう。Enterprise Architectのプロファイラの機能は、こうした状況で役に立つかもしれません。調査した結果のレポートを参照し、動作を把握し、メソッドや関数の改善に役立てることができます。

検証した結果は、チームライブラリ機能に格納し情報を共有することができます。

 

 

利用手順:

リボン

  • コード > ソースコード > 動作解析の設定 > プロファイラ
  • 動作解析 > ツール > プロファイラ > サブウィンドウの表示

その他

動作解析サブウィンドウのツールバーのボタン | プロファイラ

 

 

データ取得(サンプリング)の例

 

プロファイラの機能はツールバーのボタンで制御できます。既存のプロセスやJVMにアタッチするか、あるいは動作解析の設定で対象のアプリケーションを指定し起動します。プロファイラサブウィンドウには対象のプロセスの詳細が表示されます。この詳細には、解析データ(サンプリングデータ)の個数や内容が表示されます。また、データの取得の一時停止や再開・データの削除・レポートの生成もツールバーから行うことができます。レポート機能は、データを取得中には実行できません。

 

 

コールグラフの重み付け

 

詳細なレポートには、呼び出したスタックや処理が表示されます。それぞれの項目は、呼び出された回数が重み付けとして表示されます。配下に項目がある場合、重み付けは子項目の数値の合計となります。この重み付けの数値を参考にすることで、データ取得処理を実行中にどの処理が多く実行されているかを把握することができます。

 

 

スタックプロファイル

 

スタックプロファイルはプログラムの実行中に呼ばれたメソッド(関数)の回数を計測する1つの手段です。他のプロファイラの機能と異なり、この機能はプロファイルポイントを通過すると有効になります。プロファイルポイントは、ブレークポイントの特別な種類です。このプロファイルポイントは、ブレークポイントと同様にソースコード内に設定することができます。実行中の処理がプロファイルポイントに達すると、計測を開始します。動作が完了後、レポートとして計測結果を参照できます。レポートでは、ヒットカウントとして同じスタックに到達した回数を表現します。

 

 

 

メモリプロファイル

 

メモリプロファイルの機能は、実行中の処理がどの程度メモリを利用しているのかを把握するために有用です。メモリの量だけではなく、メモリを取得・利用した回数も解析対象です。最終的にどれだけメモリを確保し利用しているのかを数値として保持し表示できます。データの取得は、必要に応じてON/OFFを切り替えることができます。

 

 

メモリグラフ

 

上の画像は、実際にApacheプロジェクトのXercesを対象にデモプログラムを解析した結果です。

 

 

関数概要レポート

 

この概要レポートは、データ取得中に実行された関数(メソッド)のみを表示します。それぞれの関数ごとの呼び出し回数の順序に表示されます。また、複数の異なるスタックから呼び出された関数を上位に表示します。

 

 

関数行レポート

 

このレポートは、関数のそれぞれの行単位で、ソースコードの内容と結びつけて実行回数を表示します。分岐処理があるような場合に、どの内容が具体的にどれだけ処理されたかを把握することができます。

 

 

対応環境

プロファイラ機能はC, C++, Javaおよび.NETの言語(C#など)で利用できます。メモリプロファイルの機能はネイティブ環境のCおよびC++でのみ利用できます。

 

注意:

プロファイラの機能は、WINE(Linux)環境でも利用できますが、対象のアプリケーションは同じWINE環境上で動作するWindowsアプリケーションのみです。

 

 

参照: