数字を丸めたい()とき どれが一番早い??

by okmt_masaaki
♥0 | Line 53 | Modified 2010-04-16 18:31:51 | MIT License
play

ActionScript3 source code

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

package {
    import flash.display.Sprite;
    import flash.utils.getTimer;
    import flash.text.TextField;
    public class FlashTest extends Sprite {
        public function FlashTest() {
        	
        		//繰り返し回数
            var limit:uint = 20000000;
            
            
            var txt:TextField = new TextField();
            txt.htmlText = "計算中。。。しばらくおまちくだしあ~"
            txt.width = 500;
            txt.height = 500;
            var i:uint = 0;
            var temp:uint = 1000;
            var temp2:Number =10.222;
            var mytext:String;
            addChild(txt);
            
            var startTime:Number = getTimer();
            
            
            // >> 0で丸める
            for(i=0;i<limit;i++){
				temp = temp2 >> 0;
            }
            var time0:Number = getTimer();
            
            //intで丸める
            for(i=0;i<limit;i++){
				temp = int(temp2);
            }
            var time1:Number = getTimer();
            
            //uintで丸める
            for(i=0;i<limit;i++){
				temp = uint(temp2);
            }
            var time2:Number = getTimer();
            
            //Math.roundで丸める
            for(i=0;i<limit;i++){
				temp = Math.round(temp2);
            }
            var time3:Number = getTimer()
            var ec:uint = temp;
            //Math.floorで丸める
            for(i=0;i<limit;i++){
				temp = Math.floor(temp2);
            }
            var time4:Number = getTimer();
            
            //Math.ceilで丸める
            for(i=0;i<limit;i++){
				temp = Math.ceil(temp2);
            }
            var time5:Number = getTimer()
				
			mytext = "値をまとめるときのベンチマーク ↓\n\n";
			mytext += "○ >> 0 の場合 →  "+String(time0-startTime)+"\n";
			mytext += "○ int の場合 →  "+String(time1-time0)+"\n";
			mytext += "○ uint の場合 →  "+String(time2-time1)+"\n";
            mytext += "○ Math.round の場合 →  "+String(time3-time2)+"\n";
            mytext += "○ Math.floor の場合 →  "+String(time4-time3)+"\n";
            mytext += "○ Math.ceil の場合 →  "+String(time5-time4)+"\n";
            txt.htmlText = mytext;
        }
    }
}