среда, 24 октября 2012 г.

Tricks / Оптимизация для Starling (RU)

Начиная с мая 2012 в Starling начали использовать паттерн - объектный пул для событий (Event). Теперь каждая отправка сообщения не создает новый экземпляр, а использует существующий. Вот короткий пример:

//по-старинке. Создаем экземпляр
dispatchEvent(new Event(Event.COMPLETE));

//по-новому. Event будет взять из пула объектов
dispatchEventWith(Event.COMPLETE);

Еще один повод начать использовать Starling Events а не Signals Robert Penner-а. И вот неделю назад Джош (создатель Feathers) перешел с Signals на Event-ы от Starling. Но не стоит забывать о одной проблеме пула объектов и событий, - после отправки Event-а в свободное плаванье, исходный объект перестает как либо контролировать жизненный путь экземпляра Event-а, поэтому есть шанс с вероятностью отличной от нуля, что этот Event попадет в руки 2х разных процессов, которые станут совместно владеть Event-ом, не подозревая об этом. Единственный выход,- не хранить указатели на Event-ы.

Комментариев нет:

Отправить комментарий

Press Any Key...