|
|
|||||
Регистрация: Jun 2013
Сообщений: 133
|
Оптимизация dispatchEvent
Пара глупых вопросов, но может кто подскажет. Есть экземпляр класса, который при определенный условиях отправляет событие
Имеет ли смысл производить такие оптимизации: 1. Перед отправкой события проверять имеет ли объект слушатель для данного типа события, дабы не стрелять в холостую: if(hasEventListener(SomeEvent.SOME_TYPE)); dispatchEvent(new SomeEvent(SomeEvent.SOME_TYPE, this)); или это все напрасно и не имеет смысла? |
|
|||||
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
По первому вопросу ответ очень прост - стоит, так-как проверить более быстрее, чем создать объект.
|
|
|||||
Регистрация: Jun 2013
Сообщений: 133
|
Все норм, SomeEvent это кастомное событие расширяющее стандартный Event, вторым параметром передаются необходимые данные, в данном случае просто ссылка на экземпляр класса, а уже третьим и четвертым идут bubbles и cancelable.
|
|
|||||
Но hasEventListener проверяет текущий объект, а на событие может быть подписан кто угодно, намного выше (parent-ы). Не обязательно текущее событие ловит именно тот объект, который его рассылает.
|
|
|||||
Регистрация: Jun 2013
Сообщений: 133
|
Спасибо. Именно это и интересовало что менее затратно, проверить наличие подписчиков или просто разослать событие (созданное через new или уже закешированное в переменной).
|
|
|||||
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
samana, хочу уточнить, Вы о bubbles?
|
|
|||||
[+1 16.07.13]
[+4 16.07.13] Регистрация: Oct 2005
Сообщений: 217
|
Цитата:
|
|
|||||
Регистрация: Jun 2013
Сообщений: 133
|
Просто задумался, зачем при каждой рассылке создавать новое событие, если оно не меняется. |
|
|||||
[+1 16.07.13]
[+4 16.07.13] Регистрация: Oct 2005
Сообщений: 217
|
В robotlegs все время создаются новые объекты команд. Я тоже задумался над вопросом, а что если мне нужно по enter frame менять модель. Ну написал тест, запустил профилировщик, жду когда вызовется gc, надоело ждать. Суть такова, там команды - это легковесные классы, при создании которых, расходуется мало памяти и соответственно gc вызовется не скоро. Я думаю, что с событийным объектом примерно та же ситуация. Конечно, если есть возможность оптимизировать и Вы хотите спать спокойно, то можно и оптимизировать.
|
Часовой пояс GMT +4, время: 14:48. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|