// forked from alumican_net's Point.distance // ソースは忘れたけど配列の初期化にはArray.length = 0; // の方がいい見たいな見かけたけど違ったみたい // 検証の仕方間違っていたら誰か教えてください // //追記 // 510個以上の配列をクリアする時は Array.length = 0; がよい】 // 情報元 http://rest-term.com/archives/541/ package { import flash.display.*; import flash.geom.Point; import flash.text.*; import flash.utils.*; public class Main extends Sprite { private var _array1:Array = []; private var _array2:Array = []; private var _array3:Array = []; private var _array4:Array = []; //----------------------------------* // Constractor //----------------------------------* public function Main():void { //-------- max number ------------------* var n:uint = 10000; _setup(); //-------- Array test1 ------------------* _array1 = new Array(n); _measure("Array = [ ]", function ():void { _array1 =[]; for(var i:uint = 0; i < n; ++i) { _array1.push(new Point((Math.random() - 0.5) * 1000,(Math.random() - 0.5) * 1000)); } }, 100, _array1); //-------- Array test2 ------------------* _array2 = new Array(n); _measure("Array.length = 0", function ():void { _array2.length = 0; for(var i:uint = 0; i < n; ++i) { _array2.push(new Point((Math.random() - 0.5) * 1000,(Math.random() - 0.5) * 1000)); } }, 100, _array2); //-------- Array test3 ------------------* _array3 = new Array(n); _measure("Array = new Array(n)", function ():void { _array3 = new Array(n); for(var i:uint = 0; i < n; ++i) { _array3.push(new Point((Math.random() - 0.5) * 1000,(Math.random() - 0.5) * 1000)); } }, 100, _array3); //-------- Array test4 ------------------* _array4 = new Array(n); _measure("Array.splice(0, Array.length)", function ():void { _array4.splice(0, _array4.length); for(var i:uint = 0; i < n; ++i) { _array4.push(new Point((Math.random() - 0.5) * 1000,(Math.random() - 0.5) * 1000)); } }, 100, _array4); } //----------------------------------* // measure //----------------------------------* private function _measure(title:String, func:Function, numTimes:uint, array:Array, ...params):void { _time = getTimer(); for (var i:int = 0; i < numTimes; i++) { func.apply(null, params); } _time = getTimer() - _time; _debug("[ " + title + " ] " + "Array.length = " + array.length + " --> " + _time + " ms"); } //----------------------------------* // debug //----------------------------------* private function _debug(log:String):void { _field.appendText(log + "\n"); } //----------------------------------* // Text //----------------------------------* private var _field:TextField; private var _time:uint; private function _setup():void { _field = new TextField(); _field.width = stage.stageWidth; _field.height = stage.stageHeight; var format:TextFormat = _field.defaultTextFormat; format.font = "_sans"; _field.defaultTextFormat = format; addChild(_field); } } } 【検証テスト】Array = [ ] vs Array.length = 0 ?