in reply to RE: Re (tilly) 1: sort performance
in thread sort performance
You are right. I just benchmarked it. The overhead of
the maps far outweighs the cost of the sort. In fact it
is so slow I will have to ask p5p about it. Here is my
test:
Believe it or not, stupid is several times faster for me than schwartz. IMO there is simply no possible good reason for that!use strict; use Benchmark; use vars qw(%hash %test); for (1..1000) { $hash{"key$_"}{this} = "num$_"; } %test = ( schwartz => sub { my @sorted = map $_->[0], sort {$a->[1] cmp $b->[1]} map [$_, $hash{$_}{this}], keys %hash; }, straight => sub { my @sorted = sort { $hash{$a}{this} <=> $hash{$b}{this} } keys %hash; }, stupid => sub { my @sorted = sort { my $foo = [$a, $hash{$a}{this}]; $hash{$a}{this} <=> $hash{$b}{this} } keys %hash; }, ); timethese (-1, \%test);
In Section
Seekers of Perl Wisdom