[Moscow.pm] Производительность объектов.
Sergey Skvortsov
skv на protey.ru
Пт Мар 28 04:58:23 PDT 2008
On 27.03.2008 17:30, Ruslan Zakirov wrote:
> 2008/3/27 Ivan B. Serezhkin <ivan на serezhkin.com>:
>> Vladimir V. Perepelitsa wrote:
>> > On Thursday 27 March 2008 15:14:45 Ivan B. Serezhkin wrote:
>> >
>> >> Moose
>> >
>> > прикольный у него синтаксис
>> >
>> Это тебе кандидат в аутсайдеры =)
> Они же сейчас на XS перешли вроде. Лучше протестить оба вариант для
> сравнения, но если нет возможности, то лучше XS версию.
XS непосредственно в Moose нет вообще. Есть немного в Class::MOP. Еще
они активно пользуют B::* для разных странных манипуляций.
Вообще, в Moose сейчас не заморачиваются скоростью - они
целенаправленно, логично и красиво наращивают функционал. Всё остальное
что есть в разных Class-* на CPAN - это нехитрые поделки в сравнении с
Moose.
Хотя начаты некоторые работы по улучшению performance:
* MooseX::Compile - сохраняет bytecode perl-code и moose-структур
* генерация XS-accessors
* специальный opcodes для accessors
* и т.д.
Ну есть нехитрый хак уже сейчас:
__PACKAGE__->meta->make_immutable();
- что можно применять, если мы _гарантированно_ ничего не наследуем от
__PACKAGE__.
Этот "хак" лучше использовать в benchmarks.
Опять же, раз уж "меряться" скоростью - надо мерять не только скорость
accessors, но и скорость создания объектов. Иногда между ними могут быть
сильная обратная связь.
p.s. более длинно я, надеюсь, про Moose расскажу на "May Perl".
--
Sergey Skvortsov
mailto: skv на protey.ru
Подробная информация о списке рассылки Moscow-pm