diff --git a/perl-oo-action-benchmark.html b/perl-oo-action-benchmark.html index ce8ce70..7924c92 100644 --- a/perl-oo-action-benchmark.html +++ b/perl-oo-action-benchmark.html @@ -95,6 +95,10 @@ for ( 1 .. 1000000 ) { 11420.455ms + + Moose + Immutable + 1182.109ms + Moose + Types @@ -436,13 +440,25 @@ for ( 1 .. 1000000 ) {

- Just like Moo with types, Type::Tiny hits the final Moose result by around 2000ms overall. + Just like Moo with types, Type::Tiny hits the final Moose result by around 2000ms overall.

+

+ Amendment: After publishing my original findings I was alerted to a setting you could apply to Moose classes that make them immutable. + Immutable often means faster in-terms of creation but slower in terms of manipulation, but since this workload spends most of its time creating, and none of its time editing, + this produced an incredible 10x speed improvement. +

+
Immutable trick for Moose
+
+              
+                __PACKAGE__->meta->make_immutable;
+              
+            
Time:
                 
 MOOSE TIME         : 11420.455ms
 MOOSE + TYPES TIME : 13649.37ms
+MOOSE IMMU TIME    : 1182.109ms
                 
             

Ruby