Viewing file: vs_caf.pl (1.29 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#!/usr/bin/perl
### MODULES
{ package PlainMoose; use Moose; has foo => (is => 'rw'); __PACKAGE__->meta->make_immutable(); } { package PlainMouse; use Mouse; has foo => (is => 'rw'); __PACKAGE__->meta->make_immutable(); } { package ClassAccessorFast; use warnings; use strict; use base 'Class::Accessor::Fast'; __PACKAGE__->mk_accessors(qw(foo)); }
use Benchmark qw(cmpthese);
my $moose = PlainMoose->new; my $mouse = PlainMouse->new; my $caf = ClassAccessorFast->new;
print "\nSETTING\n"; cmpthese(-1, { Moose => sub { $moose->foo(23) }, Mouse => sub { $mouse->foo(23) }, ClassAccessorFast => sub { $caf->foo(23) }, }, 'noc');
print "\nGETTING\n"; cmpthese(-1, { Moose => sub { $moose->foo }, Mouse => sub { $mouse->foo }, ClassAccessorFast => sub { $caf->foo }, }, 'noc');
print "\nCREATION AND DESTRUCTION\n"; cmpthese(-1, { Moose => sub { my $x = PlainMoose->new(foo => 23) }, Mouse => sub { my $x = PlainMouse->new(foo => 23) }, ClassAccessorFast => sub { my $x = ClassAccessorFast->new({foo => 23}) }, }, 'noc');
|