forked from: Math.max/minとただのifの速度比較
forked from Math.max/minとただのifの速度比較 (diff: 14)
ActionScript3 source code
/**
* Copyright keno42 ( http://wonderfl.net/user/keno42 )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/zwIN
*/
// forked from keno42's Math.max/minとただのifの速度比較
package {
import flash.display.Sprite;
import flash.text.*;
import flash.utils.*;
public class FlashTest extends Sprite {
private var tf:TextField = new TextField();
public function FlashTest() {
// write as3 code here..
addChild(tf);
tf.autoSize = "left";
var str:String = "";
var i:int = 0;
var count:int = 1000000;
var time:Number = Number(getTimer());
for( i=0; i < count; i++ ){
var value:Number = Math.random()*500 - 200;
}
str = "random値の生成: " + String(Number(getTimer())-time) + "\n";
time = Number(getTimer());
for( i=0; i < count; i++ ){
var value1:Number = Math.random()*500 - 200;
if( value1 < 0 ) value1 = 0;
if( value1 > 100 ) value1 = 100;
}
str += "random値の生成 + if2つ: " + String(Number(getTimer())-time) + "\n";
time = Number(getTimer());
for( i=0; i < count; i++ ){
var value2:Number = Math.random()*500 - 200;
value2 = Math.min( 100, Math.max( 0, value2 ) );
}
str += "random値の生成 + Math.min + Math.max: " + String(Number(getTimer())-time) + "\n";
time = Number(getTimer());
for( i=0; i < count; i++ ){
var value3:Number = Math.random()*500 - 200;
value3 = myMin( 100, myMax( 0, value3 ) );
}
str += "random値の生成 + 自作の引数2つのmin & max: " + String(Number(getTimer())-time) + "\n";
tf.text = str;
}
private function myMax(value1:Number, value2:Number):Number{
return (value1>value2)?value1:value2;
}
private function myMin(value1:Number, value2:Number):Number{
return (value1<value2)?value1:value2;
}
}
}