なお、本稿では、Windowsスタンドアロン版のFlash Builder 4.5 Premiumの使用を前提としています。他OSやプラグイン版とはユーザーインターフェースが一部異なる場合があるため、ご注意ください。
プロファイラで何ができるのか
プロファイラには様々な機能がありますが、大まかに分けると以下の2つの機能があります。
-
メモリのプロファイリング
どのクラスのインスタンスが何個作成され、それらがどれだけのメモリを使用しているのかを調べることができます。
-
パフォーマンスのプロファイリング
メソッドが何度実行され、それらにどれだけの時間が掛かったのかを調べることができます。
これらの機能が、アプリケーションのボトルネックとなっている処理や、メモリリークしているクラスを特定する助けとなります。
プロファイラの使い方
プロファイラの起動
では早速、プロファイラを起動してみましょう。パッケージエクスプローラからプロファイルしたいアプリケーションを選択し、メニューから[実行]-[プロファイル]を選択します。ツールバーの[プロファイル]ボタン()や、アプリケーションのコンテキストメニューからも実行できます。
アプリケーションやデバッグ環境に問題が無ければ、このようなダイアログが表示されます。
デフォルトでは、「オブジェクト割り当てスタックトレースを生成」以外にチェックが入っています。とりあえずそのままで[再開]ボタンをクリックします。すると、プロファイル対象のアプリケーションが起動し、Flash Builderは、Flashプロファイルパースペクティブに切り替わります。
プロファイルビューには現在プロファイル中のアプリケーション、メモリ使用量ビューにはプロファイルビューで選択しているアプリケーションのメモリ使用量グラフが表示されています。また、ライブオブジェクトビューには、現在アプリケーション内に存在するクラスのインスタンス数とメモリ使用量が表示されています。実行中のアプリケーションを操作すると、メモリ使用量やライブオブジェクトに何らかの変化が現れるかもしれません。
メモリ使用量の推移計測
メモリ使用量ビューでは、アプリケーション内でオブジェクトが作成されたり、ガベージコレクタが実行され参照がなくなったオブジェクトが消滅することでメモリの使用量が増減していく様子が、折れ線グラフで表されます。また、プロファイルビューの[ガベージコレクタを実行]ボタン()をクリックすると、通常はFlash Playerによって自動的に実行されるガベージコレクタを、任意のタイミングで実行できます。
もし、アプリケーション内で何らかの操作を繰り返し行うことで想定外にメモリの使用量が増えていき、ガベージコレクタを実行してもメモリ使用量が減らなかった場合は、その処理でのメモリリークが疑われます。プロファイル開始時のダイアログで「メモリのプロファイリングを有効にする」のチェックを外した場合、メモリの使用量ビューは使用できません。