Показать сообщение отдельно
Старый 05.03.2012, 07:20
xdoom вне форума Посмотреть профиль Отправить личное сообщение для xdoom Найти все сообщения от xdoom
  № 20  
Ответить с цитированием
xdoom
 
Аватар для xdoom

Регистрация: Apr 2008
Адрес: black sea
Сообщений: 137
Отправить сообщение для xdoom с помощью MSN Отправить сообщение для xdoom с помощью Skype™
Код AS3:
		public function speedtest()
		{
			var eventDispatcher:EventDispatcher = new EventDispatcher() 
			eventDispatcher.addEventListener(Event.ACTIVATE,eventHandler)
			var i:int = 10000000			
			var t:int = getTimer()
			while (i--){
				eventDispatcher.dispatchEvent(new Event(Event.ACTIVATE))
			}			
			trace(getTimer()-t,ecount)
			i = 10000000
			t = getTimer()
			while (i--){
				eventHandler()
			}
			trace(getTimer()-t,ecount)
			i = 10000000
			t = getTimer()
			while (i--){
				ecount++
			}
			trace(getTimer()-t,ecount)
 
		}
		private var ecount:int
		private function eventHandler(e:Event=null):void{
			ecount++
		}
Код:
13314 10000000
2773 20000000
778 30000000
Было понятно что события медленней, но не думал что более чем в три раза.
Фишка событий - это возможность цепляться на них сразу же нескольким обработчикам, когда этого не нужно, не понимаю причин их использовать. Прямых связей можно избежать другими способами.
По моему скромному представлению.
__________________
trace("my notes")


Последний раз редактировалось xdoom; 05.03.2012 в 08:20.