AS3で実行速度の取得メモ

Flash で何か作ってる時に、 今の実行速度がどれくらい出てるのかが気になってたんですが、 気になってるんならやれよ。って事でやってみたメモ。

getTimer がFlash Playerが初期化されてからの経過時間を返してくれるらしいので、 コレを使ってやってみたよ。

//  Application.as
import flash.display.Sprite;
import flash.events.Event;
import flash.utils.getTimer;

public class Application extends Sprite
{
    /**
     *  一個前の時間を保持(MS用)
     */
    private var prevTime:int;

    /**
     *  一個前の時間を保持(FPS用)
     */
    private var prevSecondTime:int;

    /**
     *  FPS用のフレームカウンター
     */
    private var frames:int;

    /**
     *  一個前のFPSを保持
     */
    private var fps:String;

    public function Application()
    {
        //  とりあえずの初期値
        fps = 'unknown';
        //  計測用のリスナーをセット
        addEventListener(Event.ENTER_FRAME, enterFrameListener, false, 0, true);
    }

    private function enterFrameListener(evt:Event):void
    {
        //  フレーム数をインクリメント
        frames++;
        //  現在の経過時間を取得
        var time:int = getTimer();
        //  前回のFPS取得から1秒以上経ってたら再取得
        if (time - prevSecondTime >= 1000)
        {
            fps = frames.toString() + 'FPS';
            frames = 0;
            prevSecondTime = time;
        }
        //  書き出し
        trace(fps + ' / ' + (time - prevTime).toString() + 'MS');
        //  後処理
        prevTime = time;
    }
}

この処理が加わるので、 厳密に実際の処理速度が取れる訳じゃないけども、 目安となる処理速度が見れるのはありがたいっすなぁ。 って、長々書いたけども、 こんなのって常識なんだろうなぁ。って思ったよ。あはは :-P

実際やる時は TextField か何かに書き出してやるようにしないと、 ログがエラい事になってウザイかも知れませんです。 理論値も表示したい時は Stage.frameRate 使うと簡単に出せるね :-)

Posted at: 
2008/02/24 21:53:18
0 Comments
0 TrackBacks
Tags: 
ActionScript
Flash
Trackback: 
http://humming.via-kitchen.com/2008/02/24/get-speed-on-as3/trackback/

TrackBacks

まだ登録されていません。

Comments

まだ登録されていません。

Add Comment

Add Comment