Да, есть немного штраф за использование Moose.Однако, это только штраф за запуск, а не во время выполнения;если вы все написали правильно, то все будет довольно быстро во время выполнения.
Вы также включили эту строку:
__PACKAGE__->meta->make_immutable;
во все ваши классы, когда вы no Moose;
?Вызов этого метода сделает его (время выполнения) быстрее (за счет времени запуска).В частности, создание и уничтожение объектов эффективно «встроено» в ваш класс и больше не вызывает мета API.Настоятельно рекомендуется сделать ваши классы неизменными.Это делает ваш код намного быстрее, с небольшими затратами времени компиляции.Это будет особенно заметно при создании многих объектов. 1 2
Однако иногда эта стоимость все еще слишком великамного.Если вы используете Moose внутри скрипта или каким-либо другим способом, когда время компиляции составляет значительную долю вашего общего времени использования, попробуйте выполнить s/Moose/Moo/g
- если вы не используете модули MooseX, вы можете переключиться на Moo , цель которого - быть быстрее (при запуске) при сохранении 90% гибкости Moose.
Поскольку вы работаете с веб-приложением, рассматривали ли вы возможность использования Plack / PSGI?
1 Из документов make_immutable, в Moose :: Cookbook :: Basics :: Recipe7
2 См. Также статью Стевана Литтла: Почему make_immutable рекомендуется для классов Moose