in reply to Re^5: Unexpected OO accessor benchmarks
in thread Unexpected OO accessor benchmarks
Since the slowest version is running 646k iterations per second on my machine I think you should probably look elsewhere for ways to improve your code. I would think that the risk of using regex to modify code is not justified by such a very very minimal optimization.
Update: forgot the code the first time ;)
#!/usr/bin/perl use strict; use warnings; use Benchmark 'cmpthese'; my $self = bless [123], '::main'; cmpthese( 10_000_000 , { normal => sub { $self->get_value() }, optimized => sub { $self->get_value2() }, direct => sub { $self->[0] }, }); exit(0); sub get_value { my $self = shift; return $self->[0]; } sub get_value2 { $_[0]->[0]; } __END__ C:\Perl\test>perl methods_access_599259.pl Rate normal optimized direct normal 646454/s -- -29% -92% optimized 915583/s 42% -- -89% direct 8532423/s 1220% 832% --
|
|---|