substrとsubstringで処理速度が

by yasurageruheya
変わるといいなぁ、なんて思った時期が僕にもありました。
♥0 | Line 47 | Modified 2012-02-22 01:08:01 | MIT License
play

ActionScript3 source code

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

package {
    import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import flash.text.TextField;
	import flash.utils.getTimer;
    public class FlashTest extends Sprite {
		
		private const key:String = "absdefghijklmnopqrstuwxyzABCDEFGHIJKLMNOPQRSTUWXYZ";
		
		private const TEST_COUNT:int = 100000;
		
		private const txt:TextField = new TextField();
		
        public function FlashTest() {
            // write as3 code here..
            
			txt.autoSize = "left";
			
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
        }
		
		private function init(e:Event = null):void 
		{
			removeEventListener(Event.ADDED_TO_STAGE, init);
			
			addChild(txt);
			
			stage.addEventListener(MouseEvent.CLICK, test);
			test(null);
		}
		
		private function test(e:MouseEvent):void 
		{
			stage.removeEventListener(MouseEvent.CLICK, test);
			var i:int = TEST_COUNT;
			txt.text = "";
			var s:String;
			
			const A:int = key.indexOf("A");
			
			var timer:int = getTimer();
			
			while (i--)
			{
				s = key.substr(0, A) + key.substr(A + 1);
			}
			
			txt.appendText("substr : " + (getTimer() - timer) +"msec.\n");
			
			i = TEST_COUNT;
			
			timer = getTimer();
			
			while (i--)
			{
				s = key.substring(0, A) + key.substring(A + 1);
			}
			
			txt.appendText("substring : " + (getTimer() - timer) + "msec.\n");
			
			txt.appendText("くりっくでさいけいさん");
			
			stage.addEventListener(MouseEvent.CLICK, test);
		}
    }
}