[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