Array size = 5
Rate pg bobf
pg 23058/s -32%
bobf 33853/s 47%
Array size = 10
Rate pg bobf
pg 8606/s -51%
bobf 17506/s 103%
Array size = 20
Rate pg bobf
pg 3099/s -64%
bobf 8648/s 179%
Array size = 40
Rate pg bobf
pg 1207/s -71%
bobf 4167/s 245%
Array size = 80
Rate pg bobf
pg 490/s -75%
bobf 1987/s 305%
####
use warnings;
use strict;
use Benchmark qw( cmpthese );
my @alpha = ('A' .. 'Z');
for( 0 .. 4 )
{
foreach my $size ( 5, 10, 20, 40, 80 )
{
my @data;
for( 1 .. $size )
{
my $num = sprintf( "%.2f", rand( 100 ) );
my $str = $alpha[ rand( @alpha ) ] .
$alpha[ rand( @alpha ) ];
push( @data, join( ' ', $num, $str ) );
}
print "Array size = $size:\n";
cmpthese( -10,
{ pg =>
sub
{
my @new = sort {(split /\s+/, $b)[0] <=>
(split /\s+/, $a)[0]} @data;
},
bobf =>
sub
{
my @new = map { $_->[0] }
sort { $b->[1] <=> $a->[1] }
map { [ $_, (split( /\s+/, $_, 2 ))[0] ] }
@data;
}
} );
print "\n";
}
}
####
Array size = 5:
Benchmark: running bobf, pg, each for at least 10 CPU seconds...
bobf: 11 wallclock secs (10.48 usr + 0.00 sys = 10.48 CPU) @ 33386.84/s (n=350061)
pg: 11 wallclock secs (10.64 usr + 0.00 sys = 10.64 CPU) @ 18850.48/s (n=200588)
Rate pg bobf
pg 18850/s -- -44%
bobf 33387/s 77% --
Array size = 10:
Benchmark: running bobf, pg, each for at least 10 CPU seconds...
bobf: 10 wallclock secs (10.50 usr + 0.00 sys = 10.50 CPU) @ 18032.86/s (n=189345)
pg: 11 wallclock secs (10.28 usr + 0.00 sys = 10.28 CPU) @ 9208.44/s (n=94672)
Rate pg bobf
pg 9208/s -- -49%
bobf 18033/s 96% --
Array size = 20:
Benchmark: running bobf, pg, each for at least 10 CPU seconds...
bobf: 11 wallclock secs (10.44 usr + 0.00 sys = 10.44 CPU) @ 8739.61/s (n=91224)
pg: 11 wallclock secs (10.78 usr + 0.00 sys = 10.78 CPU) @ 2941.38/s (n=31711)
Rate pg bobf
pg 2941/s -- -66%
bobf 8740/s 197% --
Array size = 40:
Benchmark: running bobf, pg, each for at least 10 CPU seconds...
bobf: 10 wallclock secs (10.27 usr + 0.00 sys = 10.27 CPU) @ 4193.57/s (n=43047)
pg: 10 wallclock secs (10.47 usr + 0.00 sys = 10.47 CPU) @ 1205.27/s (n=12618)
Rate pg bobf
pg 1205/s -- -71%
bobf 4194/s 248% --
Array size = 80:
Benchmark: running bobf, pg, each for at least 10 CPU seconds...
bobf: 11 wallclock secs (10.58 usr + 0.00 sys = 10.58 CPU) @ 2007.66/s (n=21237)
pg: 11 wallclock secs (10.75 usr + 0.00 sys = 10.75 CPU) @ 493.86/s (n=5309)
Rate pg bobf
pg 494/s -- -75%
bobf 2008/s 307% --
Array size = 5:
Benchmark: running bobf, pg, each for at least 10 CPU seconds...
bobf: 11 wallclock secs (10.36 usr + 0.00 sys = 10.36 CPU) @ 33305.50/s (n=345045)
pg: 11 wallclock secs (10.67 usr + 0.00 sys = 10.67 CPU) @ 19336.30/s (n=206357)
Rate pg bobf
pg 19336/s -- -42%
bobf 33306/s 72% --
Array size = 10:
Benchmark: running bobf, pg, each for at least 10 CPU seconds...
bobf: 9 wallclock secs (10.58 usr + 0.00 sys = 10.58 CPU) @ 17641.90/s (n=186616)
pg: 11 wallclock secs (10.24 usr + 0.00 sys = 10.24 CPU) @ 9041.52/s (n=92540)
Rate pg bobf
pg 9042/s -- -49%
bobf 17642/s 95% --
Array size = 20:
Benchmark: running bobf, pg, each for at least 10 CPU seconds...
bobf: 11 wallclock secs (10.47 usr + 0.00 sys = 10.47 CPU) @ 8670.65/s (n=90773)
pg: 11 wallclock secs (10.48 usr + 0.00 sys = 10.48 CPU) @ 3157.57/s (n=33104)
Rate pg bobf
pg 3158/s -- -64%
bobf 8671/s 175% --
Array size = 40:
Benchmark: running bobf, pg, each for at least 10 CPU seconds...
bobf: 11 wallclock secs (10.61 usr + 0.00 sys = 10.61 CPU) @ 4242.72/s (n=45011)
pg: 11 wallclock secs (10.67 usr + 0.00 sys = 10.67 CPU) @ 1256.75/s (n=13412)
Rate pg bobf
pg 1257/s -- -70%
bobf 4243/s 238% --
Array size = 80:
Benchmark: running bobf, pg, each for at least 10 CPU seconds...
bobf: 11 wallclock secs (10.64 usr + 0.00 sys = 10.64 CPU) @ 1967.95/s (n=20941)
pg: 11 wallclock secs (10.94 usr + 0.00 sys = 10.94 CPU) @ 471.61/s (n=5158)
Rate pg bobf
pg 472/s -- -76%
bobf 1968/s 317% --
Array size = 5:
Benchmark: running bobf, pg, each for at least 10 CPU seconds...
bobf: 11 wallclock secs (10.62 usr + 0.00 sys = 10.62 CPU) @ 34631.78/s (n=367928)
pg: 11 wallclock secs (10.42 usr + 0.00 sys = 10.42 CPU) @ 29982.83/s (n=312511)
Rate pg bobf
pg 29983/s -- -13%
bobf 34632/s 16% --
Array size = 10:
Benchmark: running bobf, pg, each for at least 10 CPU seconds...
bobf: 10 wallclock secs (10.52 usr + 0.00 sys = 10.52 CPU) @ 17039.75/s (n=179190)
pg: 11 wallclock secs (10.47 usr + 0.00 sys = 10.47 CPU) @ 7164.77/s (n=75008)
Rate pg bobf
pg 7165/s -- -58%
bobf 17040/s 138% --
Array size = 20:
Benchmark: running bobf, pg, each for at least 10 CPU seconds...
bobf: 10 wallclock secs (10.45 usr + 0.00 sys = 10.45 CPU) @ 8604.61/s (n=89944)
pg: 11 wallclock secs (10.58 usr + 0.02 sys = 10.59 CPU) @ 3165.58/s (n=33533)
Rate pg bobf
pg 3166/s -- -63%
bobf 8605/s 172% --
Array size = 40:
Benchmark: running bobf, pg, each for at least 10 CPU seconds...
bobf: 11 wallclock secs (10.76 usr + 0.00 sys = 10.76 CPU) @ 4161.36/s (n=44797)
pg: 10 wallclock secs (10.59 usr + 0.00 sys = 10.59 CPU) @ 1216.16/s (n=12884)
Rate pg bobf
pg 1216/s -- -71%
bobf 4161/s 242% --
Array size = 80:
Benchmark: running bobf, pg, each for at least 10 CPU seconds...
bobf: 11 wallclock secs (10.70 usr + 0.00 sys = 10.70 CPU) @ 1927.78/s (n=20635)
pg: 10 wallclock secs (10.20 usr + 0.00 sys = 10.20 CPU) @ 459.37/s (n=4687)
Rate pg bobf
pg 459/s -- -76%
bobf 1928/s 320% --
Array size = 5:
Benchmark: running bobf, pg, each for at least 10 CPU seconds...
bobf: 11 wallclock secs (10.48 usr + 0.00 sys = 10.48 CPU) @ 34318.68/s (n=359797)
pg: 11 wallclock secs (10.56 usr + 0.00 sys = 10.56 CPU) @ 25804.60/s (n=272574)
Rate pg bobf
pg 25805/s -- -25%
bobf 34319/s 33% --
Array size = 10:
Benchmark: running bobf, pg, each for at least 10 CPU seconds...
bobf: 11 wallclock secs (10.64 usr + 0.00 sys = 10.64 CPU) @ 17553.24/s (n=186784)
pg: 11 wallclock secs (10.48 usr + 0.00 sys = 10.48 CPU) @ 9080.60/s (n=95201)
Rate pg bobf
pg 9081/s -- -48%
bobf 17553/s 93% --
Array size = 20:
Benchmark: running bobf, pg, each for at least 10 CPU seconds...
bobf: 9 wallclock secs (10.38 usr + 0.00 sys = 10.38 CPU) @ 8556.82/s (n=88777)
pg: 11 wallclock secs (10.55 usr + 0.00 sys = 10.55 CPU) @ 3014.60/s (n=31795)
Rate pg bobf
pg 3015/s -- -65%
bobf 8557/s 184% --
Array size = 40:
Benchmark: running bobf, pg, each for at least 10 CPU seconds...
bobf: 11 wallclock secs (10.58 usr + 0.00 sys = 10.58 CPU) @ 4139.91/s (n=43792)
pg: 10 wallclock secs (10.38 usr + 0.00 sys = 10.38 CPU) @ 1203.28/s (n=12484)
Rate pg bobf
pg 1203/s -- -71%
bobf 4140/s 244% --
Array size = 80:
Benchmark: running bobf, pg, each for at least 10 CPU seconds...
bobf: 11 wallclock secs (10.47 usr + 0.00 sys = 10.47 CPU) @ 2000.29/s (n=20941)
pg: 11 wallclock secs (10.86 usr + 0.00 sys = 10.86 CPU) @ 503.08/s (n=5463)
Rate pg bobf
pg 503/s -- -75%
bobf 2000/s 298% --
Array size = 5:
Benchmark: running bobf, pg, each for at least 10 CPU seconds...
bobf: 11 wallclock secs (10.56 usr + 0.00 sys = 10.56 CPU) @ 33619.99/s (n=355128)
pg: 11 wallclock secs (10.45 usr + 0.00 sys = 10.45 CPU) @ 21314.14/s (n=222818)
Rate pg bobf
pg 21314/s -- -37%
bobf 33620/s 58% --
Array size = 10:
Benchmark: running bobf, pg, each for at least 10 CPU seconds...
bobf: 11 wallclock secs (10.42 usr + 0.00 sys = 10.42 CPU) @ 17261.37/s (n=179898)
pg: 11 wallclock secs (10.55 usr + 0.00 sys = 10.55 CPU) @ 8535.41/s (n=90023)
Rate pg bobf
pg 8535/s -- -51%
bobf 17261/s 102% --
Array size = 20:
Benchmark: running bobf, pg, each for at least 10 CPU seconds...
bobf: 11 wallclock secs (10.62 usr + 0.00 sys = 10.62 CPU) @ 8664.85/s (n=92064)
pg: 10 wallclock secs (10.28 usr + 0.00 sys = 10.28 CPU) @ 3216.69/s (n=33074)
Rate pg bobf
pg 3217/s -- -63%
bobf 8665/s 169% --
Array size = 40:
Benchmark: running bobf, pg, each for at least 10 CPU seconds...
bobf: 11 wallclock secs (10.53 usr + 0.00 sys = 10.53 CPU) @ 4094.86/s (n=43123)
pg: 11 wallclock secs (10.39 usr + 0.00 sys = 10.39 CPU) @ 1154.76/s (n=11998)
Rate pg bobf
pg 1155/s -- -72%
bobf 4095/s 255% --
Array size = 80:
Benchmark: running bobf, pg, each for at least 10 CPU seconds...
bobf: 11 wallclock secs (10.17 usr + 0.00 sys = 10.17 CPU) @ 2028.61/s (n=20635)
pg: 11 wallclock secs (10.28 usr + 0.00 sys = 10.28 CPU) @ 523.78/s (n=5385)
Rate pg bobf
pg 524/s -- -74%
bobf 2029/s 287% --