new Date().timeの高速化
new Date().timeと独自関数のスピードを比較して見ました。自分の環境で2.5倍ちょいくらい速いです。インスタンスを作らない分GCにも優しいですが、最大1msの誤差は発生します。
package {
import flash.utils.getTimer;
import flash.text.TextField;
import flash.display.Sprite;
public class FlashTest extends Sprite {
public function FlashTest() {
var tf:TextField = new TextField();
tf.width = 465;
tf.height = 465;
tf.multiline = true;
addChild(tf);
var times:uint = 1000000;
var t:uint = getTimer();
for(var i:int = 0; i < times; i++){
new Date().time;
}
tf.appendText("new Date().time -> " + (getTimer() - t) + "\n");
t = getTimer();
for(i = 0; i < times; i++){
now();
}
tf.appendText("now() -> " + (getTimer() - t) + "\n");
}
}
}
import flash.utils.getTimer;
//初期化時点での経過ミリ秒
var start:uint = getTimer();
//システムタイム
var time:Number = new Date().time;
function now():Number{
//システムタイムに経過時間の差分を加算して返す
return time + getTimer() - start;
}