数字を丸めたい()とき どれが一番早い??
♥0 |
Line 53 |
Modified 2010-04-16 18:31:51 |
MIT License
archived:2017-03-20 04:30:40
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;
}
}
}