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;
}
}
この処理が加わるので、
厳密に実際の処理速度が取れる訳じゃないけども、
目安となる処理速度が見れるのはありがたいっすなぁ。
って、長々書いたけども、
こんなのって常識なんだろうなぁ。って思ったよ。あはは ![]()
実際やる時は 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
まだ登録されていません。