abs test

by cpu_t
結論:関数呼び出しは重い
♥0 | Line 51 | Modified 2011-05-02 02:54:48 | MIT License
play

ActionScript3 source code

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

package {
    import flash.text.TextField;
    import flash.display.Sprite;
    import flash.utils.getTimer;
    public class FlashTest extends Sprite {
        
        private const LOOP_NUM:Number = 1000000;
        
        public function FlashTest() {
            // write as3 code here..
            var tf:TextField = new TextField();
            addChild(tf);
            tf.width = stage.stageWidth;
            tf.height = stage.stageHeight;
            
            var i:int; var n:Number; var start:Number;
            var test:Array = [];
            for(i = 0; i < LOOP_NUM; i++)
            {
                n = (Math.random() - 0.5) * 20000;
                test[i] = n;
            }
            
            trace("Math.abs");
            start = getTimer();
            for(i = 0; i < LOOP_NUM; i++)
            {
                Math.abs(test[i]);
            }
            trace(getTimer() - start, "ms");
            trace("");
            
            trace("n < 0 ? -n : n");
            start = getTimer();
            for(i= 0; i < LOOP_NUM; i++)
            {
                test[i] < 0 ? -test[i] : test[i];
            }
            trace(getTimer() - start, "ms");
            trace("");
            
            trace("myAbs");
            start = getTimer();
            for(i = 0; i < LOOP_NUM; i++)
            {
                myAbs(test[i]);
            }
            trace(getTimer() - start, "ms");
            trace("");
            
            function trace(...rest):void {
                tf.appendText(rest.join(" ") + "\n");
            }
            
            function myAbs(n:Number):Number {
                return n < 0 ? -n : n;
            }

        }
    }
}

Forked