【IntUintNumberTest】intとuintでの演算速度の比較

by wetcradle
自分の環境では296(int), 250(uint), 458(Number)となった。
ループ回数 >> ループ内の処理量 という状況ではuintを使用することが効果的。
♥0 | Line 46 | Modified 2010-04-07 00:23:22 | MIT License
play

ActionScript3 source code

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

/**
自分の環境では296(int), 250(uint), 458(Number)となった。
ループ回数 >> ループ内の処理量 という状況ではuintを使用することが効果的。
*/
package {
	import flash.display.Sprite;
	import flash.text.TextField;
	import flash.utils.getTimer;
	public class IntUintNumberTest extends Sprite {
		private var textField:TextField;
		private const LENGTH:uint = 1e+7;
		public function IntUintNumberTest():void {
			configTextField();
			
			var intSum:Number = 0;
			var uintSum:Number = 0;
			var numberSum:Number = 0;
			for (var i:int=0; i<10; i++) {
				var intTime:Number = doTestInt();
				var uintTime:Number = doTestUint();
				var numberTime:Number = doTestNumber();
				intSum += intTime;
				uintSum += uintTime;
				numberSum += numberTime;
				textField.appendText(String(intTime)+", "+String(uintTime)+", "+String(numberTime)+"\n");
			}
			textField.appendText("\n"+String(intSum)+", "+String(uintSum)+", "+String(numberSum)+"\n");
		}
		private function configTextField():void {
			textField = new TextField();
			textField.width = textField.height = 400;
			addChild(textField);
			textField.text = "int, uint, Number\n";
		}
		private function doTestInt():Number {
			var startTime:Number = getTimer();
			for (var i:int=0; i<LENGTH; i++);
			return getTimer() - startTime;
		}
		private function doTestUint():Number {
			var startTime:Number = getTimer();
			for (var i:uint=0; i<LENGTH; i++);
			return getTimer() - startTime;
		}
		private function doTestNumber():Number {
			var startTime:Number = getTimer();
			for (var i:Number=0; i<LENGTH; i++);
			return getTimer() - startTime;
		}
	}
}