forked from: Comparing speed of Vector with/out parameters

by Fumio forked from Comparing speed of Vector with/out parameters (diff: 13)
♥0 | Line 72 | Modified 2011-02-16 13:12:25 | MIT License
play

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/y8Jh
 */

// forked from Fumio's Comparing speed of Vector with/out parameters
package {
	import flash.display.Sprite;
	import flash.utils.getTimer;
	import flash.text.TextField;
	import flash.text.TextFieldAutoSize;
	import flash.text.TextFormat;
	import flash.text.TextFormatAlign;
	[SWF(width = "240",height = "180")]
	public class Vector_with_parameters extends Sprite {
		private const MAX_NUMBER:uint = 30000000;
		private var started:int;
		private var my_txt:TextField = new TextField();
		private var label_txt:TextField = new TextField();
		private var my_fmt:TextFormat = new TextFormat();
		public function Vector_with_parameters() {
			// Creating a TextField for display
			createTextField();
			// Starting Test
			testVectorPush();
			testVector();
			testVectorLength();
			testVectorFixed();
		}
		private function testVector():void {
			var myVector:Vector.<int> = new Vector.<int>();
			var nMax:uint = MAX_NUMBER;
			started = getTimer();
			for (var i:uint = 0; i < nMax; i++) {
				myVector[i] = i;
			}
			xTrace((getTimer() - started));
		}
		private function testVectorPush():void {
			var myVector:Vector.<int> = new Vector.<int>();
			var nMax:uint = MAX_NUMBER;
			started = getTimer();
			for (var i:uint = 0; i < nMax; i++) {
				myVector.push(i);
			}
			xTrace((getTimer() - started));
		}
		private function testVectorLength():void {
			var nMax:uint = MAX_NUMBER;
			var myVectorLength:Vector.<int> = new Vector.<int>(nMax,false);
			started = getTimer();
			for (var i:uint = 0; i < nMax; i++) {
				myVectorLength[i] = i;
			}
			xTrace((getTimer() - started));
		}
		private function testVectorFixed():void {
			var nMax:uint = MAX_NUMBER;
			var myVectorFixed:Vector.<int>  = new Vector.<int>(nMax,true);
			started = getTimer();
			for (var i:uint = 0; i < nMax; i++) {
				myVectorFixed[i] = i;
			}
			xTrace((getTimer() - started));
		}
		private function createTextField():void {
			addChild(my_txt);
			addChild(label_txt);
			my_fmt.align = TextFormatAlign.RIGHT;
			my_txt.x +=  10;
			my_txt.autoSize = TextFieldAutoSize.RIGHT;
			my_txt.defaultTextFormat = my_fmt;
			label_txt.autoSize = TextFieldAutoSize.LEFT;
			label_txt.text = "Vector.push():\nVector:\nVector (length):\nVector (fixed):";
		}
		private function xTrace(n:int):void {
			my_txt.appendText((String(n) + "\n"));
		}
	}
}