/** 同じ長さ、値のArray,Vector,Vector3Dをaddと同じ処理を100万回実行した時の処理時間(ミリ/秒) MacBookPro2.4Gh,OSX 10.5.6 Arrayの場合0.366秒 Vectorの場合0.088秒 Vector3Dの場合0.615秒 Vectorはさすがに早い。 Vector3Dは予想通り遅い。 add以外にもいろいろ試してみるといいかも。 */ package { import flash.display.Sprite; import flash.geom.Vector3D; import flash.text.TextField; public class vecor3Dtest extends Sprite { public var _a0a:Array =new Array(0.1,1.2,2.3); public var _a0b:Array =new Array(10,20,30); public var _v3a:Vector3D=new Vector3D(0.1,1.2,2.3); public var _v3b:Vector3D=new Vector3D(10,20,30); public var _v0a:Vector.=new Vector.(3); public var _v0b:Vector.=new Vector.(3); public function vecor3Dtest():void { var text_field:TextField = new TextField(); text_field.width = stage.stageWidth; text_field.height = stage.stageHeight; stage.addChild(text_field); _v0a[0] = 0.1; _v0a[1] = 1.2; _v0a[2] = 2.3; _v0b[0] = 10; _v0b[1] = 20; _v0b[2] = 30; var _str:String = new String(); _str = "同じ長さ、値のArray,Vector,Vector3Dをaddと同じ処理を100万回実行した時の処理時間(ミリ秒)\r"; _str += "Array:" + benchMarkj(_a0) + "\r";//366 _str += "Vector:" + benchMarkj(_v0) + "\r";//88 _str += "Vector3D:" + benchMarkj(_30) + "\r";//615 _str += "Array:" + benchMarkj(_a0) + "\r";//350 _str += "Vector:" + benchMarkj(_v0) + "\r";//86 _str += "Vector3D:" + benchMarkj(_30) + "\r";//646 _str += "Array:" + benchMarkj(_a0) + "\r";//329 _str += "Vector:" + benchMarkj(_v0) + "\r";//93 _str += "Vector3D:" + benchMarkj(_30) + "\r";//647 text_field.text = _str; } //100万回関数を実行して、かかった時間をtrace private function benchMarkj(_fn:Function):int { var time:Number = (new Date()).getTime(); _fn(1000000); return (new Date()).getTime() - time; } private function _a0(n:uint):void { var _a0c:Array =new Array(); for (var i:int = 0; i < n; i++) { for (var j:int = 0; j < 3; j++) { _a0c[j] = _a0a[j]+_a0b[j]; } } //trace(_a0c); } private function _v0(n:uint):void { var _v0c:Vector.=new Vector.(3); for (var i:int = 0; i < n; i++) { for (var j:int = 0; j < 3; j++) { _v0c[j] = _v0a[j]+_v0b[j]; } } //trace(_v0c); } private function _30(n:uint):void { var _v3c:Vector3D=new Vector3D(); for (var i:int = 0; i < n; i++) { _v3c = _v3a.add(_v3b); } //trace(_v3c); } } }