Дайджест интересных материалов за неделю, главным образом посвященных веб-разработке.
Показаны сообщения с ярлыком patterns. Показать все сообщения
Показаны сообщения с ярлыком patterns. Показать все сообщения
пятница, 11 января 2013 г.
среда, 24 октября 2012 г.
Tricks / Оптимизация для Starling (RU)
Начиная с мая 2012 в Starling начали использовать паттерн - объектный пул для событий (Event). Теперь каждая отправка сообщения не создает новый экземпляр, а использует существующий. Вот короткий пример:
Еще один повод начать использовать Starling Events а не Signals Robert Penner-а. И вот неделю назад Джош (создатель Feathers) перешел с Signals на Event-ы от Starling. Но не стоит забывать о одной проблеме пула объектов и событий, - после отправки Event-а в свободное плаванье, исходный объект перестает как либо контролировать жизненный путь экземпляра Event-а, поэтому есть шанс с вероятностью отличной от нуля, что этот Event попадет в руки 2х разных процессов, которые станут совместно владеть Event-ом, не подозревая об этом. Единственный выход,- не хранить указатели на 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-ы.
Tricks / Starling Optimization (EN) / Updated
From may of 2012 in Starling started using pattern pool of objects for events. So for every dispatch of event new instance doesn't create. Here example:
One more point to start using custom Starling Events nor Robert Penner Signals. Actually I'm in love with Signals. But here was one problem - Starling uses custom Events but Feathers (ex-Foxhole) has used Signal. But now about one week Josh (author of Feathers) had move from Signals to Starling Events. I think it's better.
Be aware there some snake pit: Pool of objects can return you object that still used other event handler. That requires more trust to third-part handlers.
//ordinary. Create instance dispatchEvent(new Event(Event.COMPLETE)); //new. Use pool of Events dispatchEventWith(Event.COMPLETE);
One more point to start using custom Starling Events nor Robert Penner Signals. Actually I'm in love with Signals. But here was one problem - Starling uses custom Events but Feathers (ex-Foxhole) has used Signal. But now about one week Josh (author of Feathers) had move from Signals to Starling Events. I think it's better.
Be aware there some snake pit: Pool of objects can return you object that still used other event handler. That requires more trust to third-part handlers.
Update
By the way, here is wiki page, about this trick. And one more - about pass and cache additional date with events.воскресенье, 19 июня 2011 г.
FPUG № 28 Odessa. Итог
Затянул я выкладывание отчета, уже пол месяца прошло, постоянные разъезды съедали все свободное время, но лучше позже чем никогда. Поэтому далее следуют мои субъективные заметки о услышанном в Одессе (fpug.org.ua/meeting/28). Заранее прощу прощение, если кого-то я задену, но как говорил Платон: «Сократ мне друг но истинна дороже».
Подписаться на:
Сообщения (Atom)