MooseX :: Declare - это преобразование декларативного синтаксиса во время компиляции в «истинный» код Perl. Все его служебные данные находятся во время компиляции.
Затраты времени выполнения, о которых вы говорите, будут проверкой и приведением типов Moose. Оба из них являются необязательными: вам не нужно указывать спецификатор типа, и вам не нужно указывать is coerce
. Если вы не используете ни то, ни другое, ваша производительность во время выполнения должна быть очень близка к той, которая была бы без волшебства MooseX :: Declare.
Так что с точки зрения времени выполнения, это выигрыш / выигрыш. Вы платите только за те функции, которые используете. Проверка типов - это то, что вам все равно придется делать вручную, и принуждение, хотя оно определенно влияет на производительность, включено для каждого аргумента.