$ perl junk99 Rate moose OO_perl moo plain_perl moose 1007/s -- -16% -65% -74% OO_perl 1193/s 18% -- -58% -70% moo 2869/s 185% 141% -- -27% plain_perl 3944/s 292% 231% 37% -- $ perl -MClass::XSAccessor junk99 Rate moose OO_perl moo plain_perl moose 980/s -- -16% -67% -75% OO_perl 1167/s 19% -- -61% -70% moo 2991/s 205% 156% -- -23% plain_perl 3905/s 299% 235% 31% -- :) $ perl -MAutoXS::Accessor junk99 Rate moose OO_perl moo plain_perl moose 1007/s -- -15% -66% -74% OO_perl 1178/s 17% -- -61% -70% moo 2995/s 198% 154% -- -23% plain_perl 3905/s 288% 231% 30% -- $ perl -MDevel::VersionDump -MClass::XSAccessor junk99 Perl version: v5.14.1 on MSWin32 (C:\perl\5.14.1\bin\MSWin32-x86-multi-thread\perl.exe) B - 1.29 Benchmark - 1.12 Carp - 1.26 Carp::Heavy - 1.26 Class::Load - 0.20 Class::Load::XS - 0.04 Class::MOP - 2.0603 Class::MOP::Attribute - 2.0603 Class::MOP::Class - 2.0603 Class::MOP::Class::Immutable::Trait - 2.0603 Class::MOP::Deprecated - 2.0603 Class::MOP::Instance - 2.0603 Class::MOP::Method - 2.0603 Class::MOP::Method::Accessor - 2.0603 Class::MOP::Method::Constructor - 2.0603 Class::MOP::Method::Generated - 2.0603 Class::MOP::Method::Inlined - 2.0603 Class::MOP::Method::Meta - 2.0603 Class::MOP::Method::Overload - 2.0603 Class::MOP::Method::Wrapped - 2.0603 Class::MOP::MiniTrait - 2.0603 Class::MOP::Mixin - 2.0603 Class::MOP::Mixin::AttributeCore - 2.0603 Class::MOP::Mixin::HasAttributes - 2.0603 Class::MOP::Mixin::HasMethods - 2.0603 Class::MOP::Module - 2.0603 Class::MOP::Object - 2.0603 Class::MOP::Package - 2.0603 Class::XSAccessor - 1.14 Class::XSAccessor::Heavy - 1.14 Config - Unknown Data::OptList - 0.107 Devel::GlobalDestruction - 0.05 Devel::VersionDump - 0.02 DynaLoader - 1.13 Eval::Closure - 0.08 Exporter - 5.66 Exporter::Heavy - 5.66 List::MoreUtils - 0.33 List::Util - 1.25 MRO::Compat - 0.11 Module::Implementation - 0.06 Module::Runtime - 0.013 Moo - 0.091007 Moo::HandleMoose - Unknown Moo::Object - Unknown Moo::_Utils - Unknown Moo::_mro - Unknown Moo::sification - Unknown Moose - 2.0603 Moose::Deprecated - 2.0603 Moose::Error::Default - 2.0603 Moose::Error::Util - Unknown Moose::Exporter - 2.0603 Moose::Meta::Attribute - 2.0603 Moose::Meta::Attribute::Native - 2.0603 Moose::Meta::Class - 2.0603 Moose::Meta::Class::Immutable::Trait - 2.0603 Moose::Meta::Instance - 2.0603 Moose::Meta::Method - 2.0603 Moose::Meta::Method::Accessor - 2.0603 Moose::Meta::Method::Augmented - 2.0603 Moose::Meta::Method::Constructor - 2.0603 Moose::Meta::Method::Delegation - 2.0603 Moose::Meta::Method::Destructor - 2.0603 Moose::Meta::Method::Meta - 2.0603 Moose::Meta::Method::Overridden - 2.0603 Moose::Meta::Mixin::AttributeCore - 2.0603 Moose::Meta::Object::Trait - 2.0603 Moose::Meta::Role - 2.0603 Moose::Meta::Role::Application - 2.0603 Moose::Meta::Role::Application::RoleSummation - 2.0603 Moose::Meta::Role::Application::ToClass - 2.0603 Moose::Meta::Role::Application::ToInstance - 2.0603 Moose::Meta::Role::Application::ToRole - 2.0603 Moose::Meta::Role::Attribute - 2.0603 Moose::Meta::Role::Composite - 2.0603 Moose::Meta::Role::Method - 2.0603 Moose::Meta::Role::Method::Conflicting - 2.0603 Moose::Meta::Role::Method::Required - 2.0603 Moose::Meta::TypeCoercion - 2.0603 Moose::Meta::TypeCoercion::Union - 2.0603 Moose::Meta::TypeConstraint - 2.0603 Moose::Meta::TypeConstraint::Class - 2.0603 Moose::Meta::TypeConstraint::DuckType - 2.0603 Moose::Meta::TypeConstraint::Enum - 2.0603 Moose::Meta::TypeConstraint::Parameterizable - 2.0603 Moose::Meta::TypeConstraint::Parameterized - 2.0603 Moose::Meta::TypeConstraint::Registry - 2.0603 Moose::Meta::TypeConstraint::Role - 2.0603 Moose::Meta::TypeConstraint::Union - 2.0603 Moose::Object - 2.0603 Moose::Util - 2.0603 Moose::Util::MetaRole - 2.0603 Moose::Util::TypeConstraints - 2.0603 Moose::Util::TypeConstraints::Builtins - 2.0603 Package::DeprecationManager - 0.13 Package::Stash - 0.33 Package::Stash::XS - 0.25 Params::Util - 1.07 Scalar::Util - 1.25 Sub::Defer - Unknown Sub::Exporter - 0.982 Sub::Install - 0.926 Sub::Name - 0.05 Time::HiRes - 1.9725 Try::Tiny - 0.11 XSLoader - 0.15 base - 2.18 constant - 1.21 if - 0.0601 metaclass - 2.0603 mro - 1.07 overload - 1.13 re - 0.18 strict - 1.04 strictures - 1.004001 vars - 1.02 warnings - 1.12 warnings::register - 1.02