in reply to Re^5: when to use lists/hash vs references?
in thread when to use lists/hash vs references?
Well sure, doing more work takes more time. If you let Perl do the iteration, the difference between dereferencing and aliasing is benchmarking noise (and the difference between manual iteration and internal iteration saves you even more time):
use Modern::Perl; use Benchmark qw[ cmpthese ]; sub deref { my $r = shift; ++$r->[$_][1] for 0..$#$r; } sub alias { our @a; local *a = shift; ++$a[$_][1] for 0 .. $#a } sub deref_iter { my $r = shift; $_->[1]++ for @$r; } sub alias_iter { our @a; local *a = shift; $_->[1]++ for @a; } my @a = map[1..3],1..1e6; cmpthese -1, { deref => sub { deref( \@a ) }, alias => sub { alias( \@a ) }, deref_iter => sub { deref_iter( \@a ) }, alias_iter => sub { alias_iter( \@a ) }, };
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^7: when to use lists/hash vs references?
by BrowserUk (Patriarch) on Jul 16, 2010 at 11:12 UTC |