Показать сообщение отдельно
Старый 09.04.2014, 22:06
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 9  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
>>хочется ещё уточнить, какой из всех вариантов замера, по Вашему самый лучший

по мне так самый лучший это самый понятный, ну типа в цикле то, что интересует и все.
а эти штуки с while внутри for или new TestSpeed(print) и прочие таймеры я что-то не могу разгадать

Добавлено через 3 минуты
Код AS3:
package
{
	import flash.display.Sprite;
	import flash.text.TextField;
	import flash.text.TextFieldAutoSize;
	import flash.utils.getTimer;
 
 
	public class Main extends Sprite 
	{
 
		public function Main() 
		{
 
			tf.autoSize = TextFieldAutoSize.LEFT;
			addChild(tf);
			tf.appendText("write:");
			writeTest();
			tf.appendText("read:");
			readTest();
		}
 
		private const N:int = 5e7;
		private var memberProp:int;
		private static var staticProp:int
		private var tf:TextField = new TextField();
 
 
 
		private function writeTest():void
		{
 
			var i:int;
			var t:Number;
			var localProp:int=0;
			var obj:ValueClass = new ValueClass();
 
			for (i = 0, t = getTimer(); i < N; i++); 
			tf.appendText( "\nloopTime : " + (getTimer() - t));
 
			for (i = 0, t = getTimer(); i < N; i++) memberProp = 0;
			tf.appendText( "\nmemberProp : " + (getTimer() - t));
 
			for (i = 0, t = getTimer(); i < N; i++) localProp = 0;
			tf.appendText( "\nlocalProp : " +  (getTimer() - t));
 
			for (i = 0, t = getTimer(); i < N; i++) staticProp = 0;
			tf.appendText( "\nstaticProp : " + (getTimer() - t));
 
			for (i = 0, t = getTimer(); i < N; i++) obj.value = 0;
			tf.appendText( "\nobjProp : " + (getTimer() - t) );
 
			for (i = 0, t = getTimer(); i < N; i++) obj.prop = 0;
			tf.appendText( "\ndynamicProp : " + (getTimer() - t) );
 
			for (i = 0, t = getTimer(); i < N; i++) obj.accessor = 0;
			tf.appendText( "\naccessProp : " + (getTimer() - t) );
 
			tf.appendText("\n")
 
		}
 
		private function readTest():void
		{
 
			var i:int;
			var t:Number;
			var localProp:int=0;
			var obj:ValueClass = new ValueClass();
			obj.prop = 0;
 
			for (i = 0, t = getTimer(); i < N; i++); 
			tf.appendText( "\nloopTime : " + (getTimer() - t));
 
			for (i = 0, t = getTimer(); i < N; i++) memberProp;
			tf.appendText( "\nmemberProp : " + (getTimer() - t));
 
			for (i = 0, t = getTimer(); i < N; i++) localProp;
			tf.appendText( "\nlocalProp : " +  (getTimer() - t));
 
			for (i = 0, t = getTimer(); i < N; i++) staticProp;
			tf.appendText( "\nstaticProp : " + (getTimer() - t));
 
			for (i = 0, t = getTimer(); i < N; i++) obj.value;
			tf.appendText( "\nobjProp : " + (getTimer() - t) );
 
			for (i = 0, t = getTimer(); i < N; i++) obj.prop;
			tf.appendText( "\ndynamicProp : " + (getTimer() - t) );
 
			for (i = 0, t = getTimer(); i < N; i++) obj.accessor;
			tf.appendText( "\naccessProp : " + (getTimer() - t) );
 
			tf.appendText("\n")
 
		}
 
	}
 
}
////////
dynamic class ValueClass 
{
	public var value:int = 0;
	private var _value:int = 0;
 
	public function get accessor():int 
	{
		return _value;
	}
 
	public function set accessor(value:int):void 
	{
		_value = value;
	}
 
 
}


Последний раз редактировалось silin; 09.04.2014 в 22:20.