© 2005 by NTT COMWARE CORPORATION; made available under the EPL v1.0
 Eclipse Corner Article

Hyadesによるプロファイリング入門

このTutorialでは、Hyadesの基本的な使い方を理解するため、簡単なアプリケーションのプロファイリングを行います。基本機能のみでもHyadesは強力なツールです。まずは試用してみて、Hyadesではどのようなことができるのか理解していただければ幸いです。なお、詳細は英語ですが、http:www.eclipse.org/hyades/を参考にしてください。

※ このコンテンツは、Eclipse Japan WG 第1回セミナーのハンズオンチュートリアル用にNTTコムウェアの下記社員らによって作成されたものです。

Kazuhiro Koyama 小山和裕、Kazuhiko Shinozaki 篠崎和彦


目次

  1. Hyades のインストール

    1.1 Hyades 動作環
    1.2 Hyades Data Collection Engine のインストール
    1.3 Eclipse の設定
    1.4 Hyades Profiling and Logging の設定

  2. サンプルアプリケーションのプロファイリング

    2.1 サンプルアプリケーションの作成
    2.2 プロファイリングの手順

  3. Webアプリケーションのリモートプロファイリング

    3.1 Hyades でリモートプロファイリング
    3.2 サーバ側の設定
    3.3 リモートプロファイリングの手順


1 Hyades のインストール

 1.1 Hyades の動作環境

Hyadesを使うためには、Hyades Data Collection Engine(以下、Hyades Engine と略す。)をアプリケーションを実行するマシンにインストールする必要があります。Hyades Engine がインストールされていれば、Platform に依存せず Hyade を利用することができます。 Hyades Engine は、ほとんどの Platform で動作します。詳細は英語ですが、http:www.eclipse.org/hyades/を参考にしてください。なお、本書では、以下の環境で動作確認を行いました。

表1.1 動作条件
OS Windows XP Professional SP2
JVM 1.4.2_06
EMF Plugin Eclipse のソフトウェア更新より
Eclipse Modeling Framework(EMF) (2.0.0, 2.0.1)
XSD Plugin Eclipse のソフトウェア更新より
XSD Schema Infoset Model (2.0.0, 2.0.1)
Hyades Data Collection Engine http://www.eclipse.org/hyades/
hyades_rac_nt_3.0.2_20050225_1641.zip
Hyades Plugin http://www.eclipse.org/hyades/
hyades_runtime_3.0.2_20050225_1641.zip

 1.2 Hyades Data Collection Engine のインストール

Hyades Engine をインストールします。http:www.eclipse.org/hyades/より hyades_rac_nt_3.0.2_20050225_1641.zip を取得、解凍します。フォルダ名を Hyades に変更し、 C:\ に配置します。次に環境変数 PATHに C:\Hyades\bin, RASERVER_HOMEに C:\Hyades を設定します。続いて、Hyades Engine を Windows のサービスに登録します。コマンドプロンプトを開いて、以下を入力します。

 C:\Hyades\bin>SetConfig.bat

上記を実行すると、JVM のパス、ネットワークアクセスモード、 JBoss Application Server Home 、JOnAS Application Server Home を入力するよう、表示されます。 デフォルトのままで構いませんが、もしネットワークアクセスモードのデフォルトが LOCAL だった場合には ALL に変更します。

次に、 Windows のサービスに登録します。コマンドプロンプトを開いて、以下のコマンドを入力します。
 C:\Hyades\bin>manageservice add "Hyades Server Name" "Hyades install path"
 例 C:\Hyades\bin>manageservice add "Hyades" "C:\Hyades"

これを実行すると、 Windows のサービスに Hyades Engine が登録されます。 コントロールパネル>管理ツールよりサービスを起動します。
次のように、 Hyades が登録されているか確認してください。
以上で、 Hyades Engine のインストールは終了です。


1.3 Eclipse の設定

Hyades Engine のインストールが正常に終了したら、 Eclipse に必要な Plugin をインストールします。表1.1 に示した Hyades Plugin の圧縮ファイルを解凍し、%EclipseHome% 配下の plugin , features フォルダ内にコピーしてください。

EMF Plugin 、 XSD Plugin については、ソフトウェアの更新により、インストールしてください。 Eclipse の ヘルプ(H) > Eclipse Platform について > プラグインの詳細 を開き、次のように正常にインストールできたか確認します。Eclipse 側のインストールは以上で終了です。

1.4 Hyades Profiling and Logging の設定

Eclipse を起動し、ウインドウ(W) > 設定 > Profiling and Logging タブを開くと 図1.4.1 のような画面が起動します。
デフォルトの設定のままで Hyades Profiling 機能を利用できますが、ひとつだけ確認事項があります。
図1.4.1 の画面で Hosts タブをクリックすると 図1.4.2 の画面になります。
ここで、 Test Connection ボタンをクリックして、図1.4.3 のように Hyades Engine に接続できるかテストします。
テストの失敗した場合は、 Hyades Engine が起動していない可能性があるので、 Windows サービスから Hyades Engine を起動してください。

以上で設定は終了です。

図1.4.1
図1.4.2
図1.4.3


2 サンプルアプリケーションのプロファイリング

2.1 サンプルアプリケーションの作成

Eclipse でサンプルアプリケーションを作成します。サンプルコードを以下に示します。

 package profilingdemo;
 public class ProfilingDemoExe{
  public static void main(String[]args){
   Book book = new Book();
   book.setName("軽快なJAVA");
   book.setValue(2800);
   System.out.println(book.toString());
  }
 }

 package profilingdemo;
 public class Book{
  private String name = "";
  private int value = 0;
  public String getName(){return name;}
  public int getValue(){return value;}
  public void setName(String name){this.name = name;}
  public void setValue(int value){this.value = value;}
  public String toString(){return"本の名前\t"+name+"本の価格\t"+value+"円";}
 }
2.2 プロファイリングの手順

2.1 で作成したアプリケーションのプロファイリングを行います。
作成したアプリケーションの Java プロジェクト名を HyadesSample とします。
まず、図2.2.1 のようにプロファイリング アイコンの矢印をクリックします。
クリックすると、図2.2.1 のようにプロファイルの選択メニューが開きます。
開いたメニューから プロファイル(P) をクリックします。

図 2.2.1 プロファイリングアイコン
図 2.2.1 プロファイリングアイコン

プロファイル(P) をクリックすると、図2.2.2 のようなプロファイルのメインメニューが開きます。
プロファイルのメインメニューが開いたら、構成(F) ボックスの中から Java アプリケーションを選択します。
続いて、新規(W) をクリックします。

図 2.2.2 プロファイルメインメニュー
図 2.2.2 プロファイルメインメニュー

新規(W) をクリックすると、ワークスペースにある実行可能なクラス(main メソッドが定義されているクラス)を自動的に検索してくれます。
候補がひとつしかない場合は自動的に 図2.2.3 に遷移しますが、候補が複数あるときはクラス選択<の画面へと遷移します。
ここでは、 ProfilingDemoExe クラスしか実行可能なクラスはないので、自動的に 図2.2.3 の画面が開きます。
選択された プロジェクト名 と クラス名 を確認し、問題がなければ Profiling タブをクリックします。

図 2.2.3 実行クラス選択後の画面
図 2.2.3 実行クラス選択後の画面

Profiling タブをクリックすると、図2.2.4 のような画面になります。
プロファイリング項目の設定は、まず、 Overview タブでプロファイリングセット(デフォルトで用意されている。)を選択します。
ここでは、 Method Coverage Information (メソッドカバレッジ率のプロファイリング)を選択します。
次に、適用 ボタンをクリックして設定を反映し、 プロファイル(P) ボタンをクリックしてプロファイリングを実行します。
その他にも多くの設定項目がありますが、 基本的なローカルで動作するアプリケーションの場合は以上の設定で十分です。

図 2.2.4 プロファイリング設定メニュー
図 2.2.4 プロファイリング設定メニュー

プロファイリングを実行すると、 Profiling and Logging パースペクティブに切り替わり、左の方に 図2.2.5 のようなプロファイリングモニタが開きます。
ここでは、 図2.2.4 で選択した Code Coverage に関係する Method Code Coverage の結果が表示されます。

次に、 Method Code Coverage を選択して右クリック > Open With > Coverage Statistics(カバレッジ統計)をクリックします。

図 2.2.5 プロファイリングモニター
図 2.2.5 プロファイリングモニター

Coverage Statistics をクリックすると、図2.2.6 のようなビューが表示されます。
今回は、クラス別にまとめたメソッドのカバレッジ率が表示されます。
メソッドが本当に実行されているか確認することができます。

図 2.2.6 Coverage Statistics
図 2.2.6 Coverage Statistics

  Methods missed :実行されていないメソッド数
  Methods hit :実行されたメソッド数
  % Methodes Hit :メソッドカバレッジ率

また、プロファイリングメニューで Execution History 、 Memory Analysis を選択して実行すると、実行フロー状態、メモリ状態のプロファイリングができます。

Execution History 選択時の注意事項として、 図2.2.7 のように、 Edit をクリックして、Edit Profiling Set 画面を開けてください。

図 2.2.7 プロファイリング設定メニュー(Execution History選択)
図 2.2.7 プロファイリング設定メニュー(Execution History選択)

図2.2.8 のように、Edit Profiling Setが開くと、左フィールドの Execution Time Analysis を選択(クリック)してください。
クリックすると、右フィールドに Execution Time Analysis が表示されるので、 Show execution の設定が Show execution flow grahical details となっていることを確認してください。Show execution statistics(compressed data) となっている場合は、 UML2 Class Interactions の結果ビューにてシーケンス図が作成されませんので注意ください。

図 2.2.8 Edit Profiling Set
図 2.2.8 Edit Profiling Set

最後に、 Hyades を使ったプロファイリング結果として表示される主なビューは 表2.2 のようになります。

表2.2 プロファイリング結果ビュー
Class Statistics クラス別にオブジェクトのインスタンス数が表示されます。
Coverage Statistics クラス別にまとめたメソッドのカバレッジ率が表示されます。
EXecution Flow アプリケーションがどのような順番で、 どの程度時間を使って動作しているか知りたいときに利用します。
Instance Statistics クラス別に、活性・非活性なインスタンス数が表示されます。
Instance Statistics クラス別に、活性・非活性なインスタンス数が表示されます。
Method Statistics 各メソッドの実行にどの程度時間を使っているか知りたい時に利用します。
Object References クラス別にメモリ使用量、参照されている数が表示されます。
Package Statistics パッケージ別にオブジェクトのインスタンス数が表示されます。
UML2 Class Interactions クラス間の相互関係を視覚的に確認したい場合に利用します。 シーケンス図が自動生成されます。

ここでは、簡単なアプリケーションを例としてプロファイリングを実行してみました。
同じ手順で他のプロファイリングも可能ですので、一度実行してみてください。
今回は触れませんでしたが、プロファイリングメニューの カスタマイズ機能 、 フィルター機能 なども充実しています。