Показать сообщение отдельно
Старый 04.10.2011, 01:48
Inet_PC вне форума Посмотреть профиль Отправить личное сообщение для Inet_PC Посетить домашнюю страницу Inet_PC Найти все сообщения от Inet_PC
  № 10  
Ответить с цитированием
Inet_PC
 
Аватар для Inet_PC

Регистрация: Feb 2009
Адрес: Гы...поди, найди!
Сообщений: 853
Записей в блоге: 1
А если так:
Код AS3:
var hash:Object = { obj: { obj: { value: 5 } } };
			trace(hash.obj.obj.value);
			var i:int;
			var count:int = 1000000;
			var value:int;
			var startTime:int;
 
			var props: Array;
 
			startTime = getTimer();
			i = count;
			while (i--) {
				try {
					value = hash.obj.obj.value;
				}
				catch (error:Error) {
 
				}
			}
			trace("Hit try: ", (getTimer() - startTime));
 
			startTime = getTimer();
			i = count;
			while (i--) {
				try {
				 value = hash.obj.obj.value.prop;
				}
				catch (error:Error) {
 
				}
			}
			trace("Miss try: ", (getTimer() - startTime));
 
			startTime = getTimer();
			i = count;
			props = ('obj.obj.value').split('[').join('.').split(']').join('.').split('.');
			while (i--) {
				value = getProperty(hash, "obj.obj.value", props);
			}
			trace("Hit getProperty: ", (getTimer() - startTime));
 
			startTime = getTimer();
			i = count;
			props = ('obj.obj.value.prop').split('[').join('.').split(']').join('.').split('.');
			while (i--) {
				value = getProperty(this, "obj.obj.value.prop", props);
			}
			trace("Miss getProperty: ", (getTimer() - startTime));
То:
Hit try: 234
Miss try: 13595
Hit getProperty: 627
Miss getProperty: 695

В общем производительность оценить в AS3 на глаз (и даже такими синтетическими тестами) нереально, слишком много факторов не учитывается. Я возможно заменю "внутренности" getProperty на try/catch. Пока в раздумьях, просто я придерживаюсь мнения, что там где можно обойтись без ловли ошибок, нужно обходится...

Добавлено через 2 минуты
Цитата:
try/catch мне не нравится тем, что в строчке кода, которую я в него оберну, может содержаться совершенно другое RTE.
Совершенно с Вами согласен

Добавлено через 3 минуты
Цитата:
Я стараюсь не использовать его вообще нигде
Аналогично, согласен

Добавлено через 4 минуты
Цитата:
Код AS3:
if (Props.getProperty("hash.value.value")) myValue=Props.value;
Такая запись затрудняет чтение. А вот так ли часто нужно знать если свойство, если его значение null?

Добавлено через 5 минут
Ну в общем я за производительность обеями ногами, как говорится копейка Гигагерц бережет)
__________________
http://www.chessmax.ru