PointとArrayで速度比較
コメントの後がかかった時間。
配列の添え字でアクセスするのよりも、クラスのメンバ変数にアクセスするのの方が速くてちょっとびっくりしたけど、ActionScriptの配列はC的な配列じゃないからかも。逆にクラスのメンバ変数はすでに配列として確保されていそう。xとかも整数にマップされてそう。
var d:Point = new Point(); d.x = 0.1; //55 d.x; //55 var d:Array = [0.1, 0.2]; d[0]; //105 d[0] = 0.1; //995 d.x = 0.1; //2115 var d:Object = new Object(); d.x; //798 d.x = 0.1; //1860
とりあえず、2次元ベクトルの扱いにはPointを使った方が格段に速いという結論で。ただ、Pointのaddとか非破壊的メソッドなので困る。offsetなら破壊的に書き換えられるけど。とりあえずそのあたりを念頭に置いてベクトル計算ライブラリを作ろうかなぁ。すでにいいのがあったりしそうだなぁ。まずは探すか。
その他のケースでも長さが固定ならArrayを避けるのも検討した方が良さそうだ。