use strict;
use warnings;
use Benchmark qw(cmpthese);

{
	package Fast;
	use Moose;
	use MooseX::XSAccessor;
	has attr => (is => "rw", isa => "Any");
	__PACKAGE__->meta->make_immutable;
}

{
	package Slow;
	use Moose;
	has attr => (is => "rw", isa => "Any");
	__PACKAGE__->meta->make_immutable;
}

our $Fast = "Fast"->new(attr => 42);
our $Slow = "Slow"->new(attr => 42);

cmpthese(-1, {
	Fast => '$::Fast->attr',
	Slow => '$::Slow->attr',
});

__END__
          Rate Slow Fast
Slow  504123/s   -- -66%
Fast 1487682/s 195%   --