in reply to Re: Re: = vs cmp
in thread <=> vs cmp

Your results can vary greatly depending on your data. Check out this code that gives you a pretty evenly distributed sample.
use Benchmark; # Get 200 random 4-digit integers my @array = (grep {/\d{4}/} map { 10000 * (sprintf "%0.4f", rand) } (1 +..400))[1..200]; print "N = " . @array . "\n\n"; # Be sure we have the right sample siz +e timethese(0, { sorty => \&sorty, space => \&spaceship, comp => \&comp }); sub sorty { sort @array } sub comp { sort {$a cmp $b} @array } sub spaceship { sort {$a <=> $b} @array }
PRINTS:
N = 200 Benchmark: running comp, sorty, space, each for at least 3 CPU seconds +... comp: 3 wallclock secs ( 3.15 usr + 0.01 sys = 3.16 CPU) @ 1064618. +52/s (n=3368453) sorty: 3 wallclock secs ( 3.11 usr + 0.00 sys = 3.11 CPU) @ 1096416 +.69/s (n=3415338) space: 3 wallclock secs ( 3.11 usr + 0.00 sys = 3.11 CPU) @ 1064940 +.23/s (n=3314094)
Looks like a pretty even race to me!