Object のテスト2

by bkzen forked from Object のテスト (diff: 2)
回数変えただけ
♥0 | Line 96 | Modified 2011-04-13 17:20:19 | MIT License
play

ActionScript3 source code

/**
 * Copyright bkzen ( http://wonderfl.net/user/bkzen )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/3ii2
 */

// forked from bkzen's Object のテスト
package 
{
    import flash.events.MouseEvent;
    import flash.events.Event;
    import flash.display.Sprite;
    import flash.text.TextField;
    import flash.utils.getTimer;
    public class FlashTest extends Sprite 
    {
        private var txt: TextField;
        
        public function FlashTest() 
        {
            // write as3 code here..
            if (stage) init();
            else addEventListener(Event.ADDED_TO_STAGE, init);
        }
        
        private function init(e: Event = null): void
        {
            removeEventListener(Event.ADDED_TO_STAGE, init);
            stage.addEventListener(MouseEvent.CLICK, onClick);
            trace("ステージクリックでスタート", "重いので注意");
        }
        
        private function onClick(e: MouseEvent): void
        {
            stage.align = "TL";
            
            var obj: Object = { };
            var t: uint;
            var i: uint, n: uint = 80000;
            
            
            trace("object に対してそれぞれ " + n + "回 処理します。");
            
            trace("------");
            
            t = getTimer();
            for (i = 0; i < n; i++) 
            {
                obj["a" + i] = true;
            }
            trace('obj["a" + i] = true', getTimer() - t);
            
            t = getTimer();
            for (i = 0; i < n; i++) 
            {
                obj["z" + i] = true;
            }
            trace('obj["z" + i] = true', getTimer() - t);
            
            t = getTimer();
            for (i = 0; i < n; i++) 
            {
                obj["b" + i] = true;
            }
            trace('obj["b" + i] = true', getTimer() - t);
            
            t = getTimer();
            for (i = 0; i < n; i++) 
            {
                obj["$" + i] = true;
            }
            trace('obj["$" + i] = true', getTimer() - t);
            
            
            trace("------");
            
            t = getTimer();
            for (i = 0; i < n; i++) 
            {
                obj["a" + i] == true;
            }
            trace('obj["a" + i] == true', getTimer() - t);
            
            t = getTimer();
            for (i = 0; i < n; i++) 
            {
                obj["z" + i] == true;
            }
            trace('obj["z" + i] == true', getTimer() - t);
            
            t = getTimer();
            for (i = 0; i < n; i++) 
            {
                obj["b" + i] == true;
            }
            trace('obj["b" + i] == true', getTimer() - t);
            
            t = getTimer();
            for (i = 0; i < n; i++) 
            {
                obj["$" + i] == true;
            }
            trace('obj["$" + i] == true', getTimer() - t);
            
            t = getTimer();
            for (i = 0; i < n; i++) 
            {
                obj["c" + i] == true;
            }
            trace('obj["c" + i] == true', getTimer() - t);
        }
        private function trace(...args): void
        {
            if (!txt) addChild(txt = new TextField()), txt.width = stage.stageWidth, txt.height = stage.stageHeight, txt.text = "";
            var i: uint, n: uint = args.length;
            for (i = 0; i < n; i++) 
            {
                txt.appendText(args[i] + (i == n - 1 ? "\n" : ", "));
            }
        }

    }
}