NAME
Catalyst::Seal::Immutable - make the application class and its components immutable
DESCRIPTION
catalyst.pl generates __PACKAGE__->meta->make_immutable into controllers but not into MyApp.pm, and the application class is also the per-request context class: Catalyst::prepare builds one with $class->context_class->new. A mutable application class means every request is constructed through Class::MOP::Class::_construct_instance, with one initialize_instance_slot call per attribute, plus BUILDALL and find_all_methods_by_name.
On a bare application with eighteen attributes that is 283us against 231us per request, measured with bench/dispatch.pl from the Punk distribution.
AUTHOR
LNATION <email@lnation.org>
LICENSE AND COPYRIGHT
This software is Copyright (c) 2026 by LNATION <email@lnation.org>.
This is free software, licensed under:
The Artistic License 2.0 (GPL Compatible)