Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

Flash Builderのプロファイラを使用したパフォーマンスチューニング

Flash Builder 4.5 Premiumのプロファイラ機能を試してみよう!

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2011/10/13 14:00

 Flash Builder 4.5 Premiumには、アプリケーションのパフォーマンスチューニングに役立つプロファイラの機能が付いています。本稿では、プロファイラの機能を紹介し、実際に使用して問題の原因を特定するまでの流れを説明していきます。

目次

 なお、本稿では、Windowsスタンドアロン版のFlash Builder 4.5 Premiumの使用を前提としています。他OSやプラグイン版とはユーザーインターフェースが一部異なる場合があるため、ご注意ください。

プロファイラで何ができるのか

 プロファイラには様々な機能がありますが、大まかに分けると以下の2つの機能があります。

  • メモリのプロファイリング

     どのクラスのインスタンスが何個作成され、それらがどれだけのメモリを使用しているのかを調べることができます。

  • パフォーマンスのプロファイリング

     メソッドが何度実行され、それらにどれだけの時間が掛かったのかを調べることができます。

 これらの機能が、アプリケーションのボトルネックとなっている処理や、メモリリークしているクラスを特定する助けとなります。

プロファイラの使い方

プロファイラの起動

 では早速、プロファイラを起動してみましょう。パッケージエクスプローラからプロファイルしたいアプリケーションを選択し、メニューから[実行]-[プロファイル]を選択します。ツールバーの[プロファイル]ボタン(アイコン1)や、アプリケーションのコンテキストメニューからも実行できます。

プロファイラの実行
プロファイラの実行

 アプリケーションやデバッグ環境に問題が無ければ、このようなダイアログが表示されます。

プロファイラ設定ダイアログ
プロファイラ設定ダイアログ

 デフォルトでは、「オブジェクト割り当てスタックトレースを生成」以外にチェックが入っています。とりあえずそのままで[再開]ボタンをクリックします。すると、プロファイル対象のアプリケーションが起動し、Flash Builderは、Flashプロファイルパースペクティブに切り替わります。

 プロファイルビューには現在プロファイル中のアプリケーション、メモリ使用量ビューにはプロファイルビューで選択しているアプリケーションのメモリ使用量グラフが表示されています。また、ライブオブジェクトビューには、現在アプリケーション内に存在するクラスのインスタンス数とメモリ使用量が表示されています。実行中のアプリケーションを操作すると、メモリ使用量やライブオブジェクトに何らかの変化が現れるかもしれません。

Flash プロファイルパースペクティブ
Flash プロファイルパースペクティブ

メモリ使用量の推移計測

 メモリ使用量ビューでは、アプリケーション内でオブジェクトが作成されたり、ガベージコレクタが実行され参照がなくなったオブジェクトが消滅することでメモリの使用量が増減していく様子が、折れ線グラフで表されます。また、プロファイルビューの[ガベージコレクタを実行]ボタン(アイコン2)をクリックすると、通常はFlash Playerによって自動的に実行されるガベージコレクタを、任意のタイミングで実行できます。

 もし、アプリケーション内で何らかの操作を繰り返し行うことで想定外にメモリの使用量が増えていき、ガベージコレクタを実行してもメモリ使用量が減らなかった場合は、その処理でのメモリリークが疑われます。プロファイル開始時のダイアログで「メモリのプロファイリングを有効にする」のチェックを外した場合、メモリの使用量ビューは使用できません。

メモリ使用量ビュー
メモリ使用量ビュー

  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 石上 慎太郎(イシガミ シンタロウ)

    クラスメソッド株式会社(http://classmethod.jp)所属ソフトウェアエンジニア。 主にAdobe Flash Platformの各種技術を用いたユーザーインターフェイス設計/実装を担当している。 学生時代よりFlashをこよなく愛すプログラマー。

All contents copyright © 2005-2019 Shoeisha Co., Ltd. All rights reserved. ver.1.5