ベンチマーク

ベンチマークアプリケーションには多数のツールを利用できます。Flash コミュニティメンバーによって開発された Stats クラスおよび PerformanceTest クラスを使用できます。また、Adobe® Flash® Builder™ のプロファイラー、および FlexPMD ツールを使用することもできます。

Stats クラス

外部ツールを使用することなく、リリースバージョンのランタイムを使用して実行時にコードをプロファイルするには、Flash コミュニティの Mr.doob によって開発された Stats クラスを使用できます。Stats クラスは、 https://github.com/mrdoob/Hi-ReS-Stats からダウンロードできます。

Stats クラスを使用すると、次のものを追跡できます。
  • 1 秒ごとにレンダリングされるフレーム数(この数値が高いほど良い)

  • フレームのレンダリングにかかったミリ秒(この数値が低いほど良い)

  • コードで使用されているメモリの量これが各フレームで増える場合は、アプリケーションでメモリリークが発生している可能性があります。メモリリークの可能性がある場合は、その原因を調査することが重要です。

  • アプリケーションが使用した最大メモリ量。

Stats クラスは、ダウンロード後に、次のコンパクトコードと共に使用できます。

import net.hires.debug.*; 
addChild( new Stats() );

Adobe® Flash® Professional または Flash Builder の条件付きコンパイルを使用して、Stats オブジェクトを有効にすることができます。

CONFIG::DEBUG 
{ 
    import net.hires.debug.*; 
    addChild( new Stats() ); 
}

DEBUG 定数の値を切り替えることで、Stats オブジェクトのコンパイルを有効または無効にすることができます。これと同じ手法を使用して、アプリケーションでコンパイルしないコードロジックを置き換えることができます。

PerformanceTest クラス

Grant Skinner 氏は、ActionScript コードの実行をプロファイルするため、ユニットテストワークフローに統合できるツールを開発しました。カスタムクラスを PerformanceTest クラスに渡します。これにより、一連のテストがコードで実行されます。PerformanceTest クラスを使用すると、様々な手法のベンチマークを簡単に行うことができます。PerformanceTest クラスは http://www.gskinner.com/blog/archives/2009/04/as3_performance.html からダウンロードできます。

Flash Builder プロファイラー

Flash Builder には、高レベルの詳細でコードのベンチマークを行うことができるプロファイラーが用意されています。

注意: このプロファイラーにアクセスするには、Flash Player のデバッガーバージョンを使用します。このようにしないと、エラーメッセージが表示されます。

このプロファイラーは、Adobe Flash Professional で作成されたコンテンツにも使用できます。そのためには、ActionScript から、コンパイルされた SWF ファイルをロードするか、Flex プロジェクトを Flash Builder にロードし、そこでプロファイラーを実行できます。プロファイラーについて詳しくは、 Flash Builder 4 ユーザーガイド の「Flex アプリケーションのプロファイリング」を参照してください。

FlexPMD

アドビテクニカルサービスは、FlexPMD と呼ばれるツールをリリースしました。このツールを使用すると、ActionScript 3.0 コードの品質を監査することができます。FlexPMD は、JavaPMD に類似した ActionScript ツールです。FlexPMD は、ActionScript 3.0 または Flex ソースディレクトリを監査して、コードの品質を向上させます。未使用のコード、過度に複雑なコード、過度に長いコード、Flex コンポーネントライフサイクルの誤った使用など、好ましくないコーディング手法を検出します。

Adobe オープンソースプロジェクトの FlexPMD は、 http://opensource.adobe.com/wiki/display/flexpmd/FlexPMD で入手できます。Eclipse プラグインは、 http://opensource.adobe.com/wiki/display/flexpmd/FlexPMD+Eclipse+plugin で入手できます。

FlexPMD を使用すると、コードを監査し、コードがクリーンで最適化されていることを確認できます。FlexPMD の本当の機能は、その拡張性にあります。開発者は、独自のルールセットを作成して任意のコードを監査できます。例えば、フィルターの過度の使用や、把握する必要がある好ましくないコーディング手法を検出するルールセットを作成できます。