Testing Math.max-min vs if statement
♥0 |
Line 48 |
Modified 2011-08-02 16:37:50 |
MIT License
archived:2017-03-20 04:25:36
ActionScript3 source code
/**
* Copyright Fumio ( http://wonderfl.net/user/Fumio )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/i2Te
*/
package {
import flash.display.Sprite;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
public class Test extends Sprite {
private var nMin:Number = 0;
private var nMax:Number = 1;
private var nCount:uint = 1000000;
private var _txt:TextField;
public function Test():void {
var nTime:Number;
var _str:String = "";
_txt = new TextField();
_txt.width = 200;
_txt.autoSize = TextFieldAutoSize.LEFT;
_txt.wordWrap = true;
_txt.text = "";
addChild(_txt);
nTime = repeatTest(test1,-1,0.5,2);
_str += "if: " + String(nTime) + "\n";
nTime = repeatTest(test2,-1,0.5,2);
_str += "Math.max-nin: " + String(nTime)+"\n";
_txt.text = _str;
}
private function repeatTest(myFunction:Function, a:Number, b:Number, c:Number):Number {
var nStart:Number = new Date().time;
for (var i:int = 0; i < nCount; i++) {
myFunction(a);
myFunction(b);
myFunction(c);
}
return new Date().time - nStart;
}
private function test1(n:Number):void {
var nResult:Number;
if (n>nMax) {
nResult=nMax;
} else if (n < nMin) {
nResult=nMin;
} else {
nResult=n;
}
// trace(nResult);
}
private function test2(n:Number):void {
var nResult:Number=Math.max(Math.min(nMax,n),nMin);
// trace(nResult);
}
}
}