※現在、「wonderfl build flash online」求人コンテンツ制作に関してのアンケートを実施中です!みなさまのお力添えを頂いて、続々とアンケート結果が集まっていますが、まだまだ募集しております。ご協力のほど、どうぞよろしくお願いいたします!
wonderfl運営事務局
→アンケートページ(※ログインしてからお答えいただけるようになっています。)
Point.distance 【検証テスト】Array = [ ] vs Array.length = 0 ?
- // 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);
- }
- }
- }
notice:



