(Even for am Atom, your perl seems really, really slow. You have Moo running on your system at half the speed of Moose on mine?)
I have that also, but still not seeing the benefit :
C:\test>ppm-shell
ppm 4.10 (ActivePerl 1007)
Copyright (C) 2010 ActiveState Software Inc. All rights reserved.
ppm> search Class::XSAccessor
1: Class-XSAccessor
Generate fast XS accessors without runtime compilation
Version: 1.13
Released: 2011-12-12
Author: Steffen Mueller <smueller@cpan.org>
Provide: Class::XSAccessor version 1.13
Provide: Class::XSAccessor::Array version 1.13
Provide: Class::XSAccessor::Heavy version 1.13
Require: XSLoader
Repo: ActiveState Package Repository
CPAN: http://search.cpan.org/dist/Class-XSAccessor-1.13/
Installed: 1.13 (site)
ppm> quit
C:\test>perl -MClass::XSAccessor -E"say $Class::XSAccessor::VERSIO
1.13
C:\test>type junk99.pl
use Benchmark qw(cmpthese);
{
package Foo1;
sub new { bless $_[1], $_[0] }
sub foo { $_[0]{foo} }
}
{
package Foo2;
use Moo;
has foo => (is => 'ro');
}
{
package Foo3;
use Moose;
has foo => (is => 'ro');
}
our $foo1 = Foo1::->new({foo => 0});
our $foo2 = Foo2::->new({foo => 0});
our $foo3 = Foo3::->new({foo => 0});
our $foo4 = { foo => 0 };
cmpthese( -3, {
OO_perl => q[ $foo1->foo for 1 .. 1000; ],
moo => q[ $foo2->foo for 1 .. 1000; ],
moose => q[ $foo3->foo for 1 .. 1000; ],
plain_perl => q[ $foo4->{foo} for 1 .. 1000; ],
});
C:\test>junk99
Rate moose moo OO_perl plain_perl
moose 1969/s -- -4% -17% -74%
moo 2043/s 4% -- -14% -73%
OO_perl 2382/s 21% 17% -- -69%
plain_perl 7624/s 287% 273% 220% --
With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
RIP Neil Armstrong
hr /