【IntUintNumberTest】intとuintでの演算速度の比較
自分の環境では296(int), 250(uint), 458(Number)となった。
ループ回数 >> ループ内の処理量 という状況ではuintを使用することが効果的。
♥0 |
Line 46 |
Modified 2010-04-07 00:23:22 |
MIT License
archived:2017-03-10 15:55:40
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;
}
}
}