> IIRC, a long time ago I send you a patch for Sort::Maker benchmarking
> script incorporating Sort::Key variants that showed how faster my module
> can be. I would try to find it and send it to you again.
Well, I have been unable to find it... but I have redone it :-)
Attached are the patch that adds tests for Sort::Key variants to your
testing/benchmarking scripts in Sort::Maker and the output I get when I
run them on my computer.
You can see that Sort::Key sorters are usually between 2 and 3 times
faster than any variant generated by Sort::Maker.
To be fair, I have to said that in my experience, as the size of the
lists to be sorted increases, the gap becomes smaller and for really
large data sets, Sort::Key sorters are around 1.5 times faster than the
GRT ones generated by Sort::Maker.
Memory usage is usually also quite lower in Sort::Key. That's an
important thing to consider when your data sets are really big.
diff --git a/t/common.pm b/t/common.pm
index 1ac5082..8bdd708 100644
--- a/t/common.pm
+++ b/t/common.pm
@@ -44,6 +44,7 @@ sub test_driver {
}
make_test_sorters( $test, $default_styles ) ;
+ make_sk_sorters($test);
if ( $test->{error} ) {
@@ -131,6 +132,7 @@ sub benchmark_driver {
$test->{input_sets} = [generate_data( $test, $default_sizes )] ;
make_test_sorters( $test, $default_styles ) ;
+ make_sk_sorters($test) ;
run_benchmarks( $test, $duration ) ;
}
@@ -146,7 +148,7 @@ sub run_benchmarks {
$entries{ $name } = $name =~ /ref_in/ ?
sub { my @sorted = $sorter->( $in_ref ) } :
- sub { my @sorted = $sorter->( @input ) } ;
+ sub { my @sorted = $sorter->( @input ) } ;
}
$entries{ 'gold' } =
@@ -170,7 +172,19 @@ sub generate_data {
my( $test, $default_sizes ) = @_ ;
my $gen_code = $test->{gen} ;
- $gen_code or die "no 'gen' code for test $test->{name}" ;
+ if( not defined $gen_code) {
+ if ($test->{data}) {
+ my $data = $test->{data};
+ my $ix = -1;
+ $gen_code = sub {
+ $ix = ($ix + 1) % @$data;
+ $data->[$ix]
+ }
+ }
+ else {
+ die "no 'gen' code for test $test->{name}" ;
+ }
+ }
my @sizes = @{ $test->{sizes} || $default_sizes || [100] } ;
@@ -241,6 +255,71 @@ sub make_test_sorters {
return 1 ;
}
+my %pre_mod = map { $_ => 1 } qw(signed signed_float unsigned unsigned_float);
+my %post_mod = map { $_ => 1 } qw(descending ascending fixed varying no_case case);
+
+sub make_sk_sorters {
+ my $test = shift;
+ if (eval { require Sort::Key; 1 }) {
+ unless ($test->{ref_in} or $test->{ref_out}) {
+ my $args = $test->{args} or die "$test->{name} has no args\n" ;
+ my $arg_sets = ( ref $args eq 'HASH' ) ? $args : { '' => $args } ;
+ TEST: foreach my $arg_name ( sort keys %{$arg_sets} ) {
+ my $test_args = $arg_sets->{$arg_name} ;
+ my $sort_name = $arg_name ? "SK_$arg_name" : "SK";
+ my $init = '';
+ my @code;
+ my @types;
+ my @test_args = @$test_args;
+ while (@test_args) {
+ my ($type, %mod);
+ while (1) {
+ $type = shift @test_args;
+ last unless $pre_mod{$type};
+ $mod{$type} = 1;
+ die "bad type specification" unless @test_args;
+ }
+ while (@test_args and $post_mod{$test_args[0]}) {
+ my $mod = shift @test_args;
+ $mod{$mod} = 1;
+ if ($mod =~ /^(?:fixed|no_case)$/) {
+ next TEST;
+ }
+ }
+
+ my $code = (@test_args ? shift(@test_args) : '$_');
+ if ($type eq 'init_code') {
+ $init = $code;
+ }
+ else {
+ if (!ref($code) and $type =~ /^(?:string|number)$/) {
+ if ($type eq 'number') {
+ if ($mod{unsigned}) {
+ $type = 'uint';
+ }
+ if ($mod{signed}) {
+ $type = 'int';
+ }
+ }
+ $type = "-$type" if $mod{descending};
+ push @types, $type;
+ push @code, $code;
+ }
+ else {
+ warn "unsupported argument, type: $type, ref(code): " . ref($code);
+ next TEST;
+ }
+ }
+ }
+ my $sub = eval "sub { $init (" . join(", ", @code) . ") }";
+ my $sorter = Sort::Key::multikeysorter($sub, @types);
+ $test->{sorters}{$sort_name} = $sorter ;
+ }
+ }
+ }
+ 1;
+}
+
sub count_tests {
my( $tests, $default_styles ) = @_ ;
Name "main::bench" used only once: possible typo at t/arrays.t line 1.
Sorting 100 elements of 'arrays of strings'
Benchmark: running GRT, SK, ST, gold, orcish, plain for at least 2 CPU
seconds...
GRT: 2 wallclock secs ( 2.15 usr + 0.01 sys = 2.16 CPU) @ 3550.46/s
(n=7669)
SK: 2 wallclock secs ( 2.19 usr + 0.00 sys = 2.19 CPU) @ 7552.51/s
(n=16540)
ST: 2 wallclock secs ( 2.23 usr + 0.00 sys = 2.23 CPU) @ 2188.34/s
(n=4880)
gold: 2 wallclock secs ( 2.20 usr + 0.00 sys = 2.20 CPU) @ 1943.64/s
(n=4276)
orcish: 2 wallclock secs ( 2.14 usr + 0.00 sys = 2.14 CPU) @ 1476.17/s
(n=3159)
plain: 3 wallclock secs ( 2.12 usr + 0.00 sys = 2.12 CPU) @ 971.23/s
(n=2059)
Sorting 100 elements of 'arrays of numbers'
Benchmark: running GRT, SK, ST, gold, orcish, plain for at least 2 CPU
seconds...
GRT: 3 wallclock secs ( 2.23 usr + 0.00 sys = 2.23 CPU) @ 2872.20/s
(n=6405)
SK: 2 wallclock secs ( 2.47 usr + 0.02 sys = 2.49 CPU) @ 7207.23/s
(n=17946)
ST: 2 wallclock secs ( 1.98 usr + 0.04 sys = 2.02 CPU) @ 2128.71/s
(n=4300)
gold: 2 wallclock secs ( 2.00 usr + 0.06 sys = 2.06 CPU) @ 1130.58/s
(n=2329)
orcish: 2 wallclock secs ( 2.07 usr + 0.00 sys = 2.07 CPU) @ 1020.29/s
(n=2112)
plain: 3 wallclock secs ( 2.38 usr + 0.00 sys = 2.38 CPU) @ 894.96/s
(n=2130)
Sorting 100 elements of 'arrays of multiple strings'
Benchmark: running GRT, SK, ST, gold, orcish, plain for at least 2 CPU
seconds...
GRT: 2 wallclock secs ( 2.29 usr + 0.00 sys = 2.29 CPU) @ 1786.03/s
(n=4090)
SK: 2 wallclock secs ( 2.06 usr + 0.00 sys = 2.06 CPU) @ 4403.40/s
(n=9071)
ST: 2 wallclock secs ( 2.00 usr + 0.00 sys = 2.00 CPU) @ 1748.00/s
(n=3496)
gold: 3 wallclock secs ( 2.43 usr + 0.00 sys = 2.43 CPU) @ 1699.18/s
(n=4129)
orcish: 2 wallclock secs ( 2.03 usr + 0.00 sys = 2.03 CPU) @ 1356.16/s
(n=2753)
plain: 2 wallclock secs ( 2.20 usr + 0.00 sys = 2.20 CPU) @ 911.36/s
(n=2005)
Sorting 100 elements of 'arrays of multiple numbers'
Benchmark: running GRT, SK, ST, gold, orcish, plain for at least 2 CPU
seconds...
GRT: 2 wallclock secs ( 2.11 usr + 0.00 sys = 2.11 CPU) @ 1581.04/s
(n=3336)
SK: 2 wallclock secs ( 2.27 usr + 0.00 sys = 2.27 CPU) @ 6312.33/s
(n=14329)
ST: 2 wallclock secs ( 2.18 usr + 0.00 sys = 2.18 CPU) @ 2054.59/s
(n=4479)
gold: 2 wallclock secs ( 2.12 usr + 0.00 sys = 2.12 CPU) @ 1947.64/s
(n=4129)
orcish: 2 wallclock secs ( 2.11 usr + 0.00 sys = 2.11 CPU) @ 1519.91/s
(n=3207)
plain: 2 wallclock secs ( 2.21 usr + 0.00 sys = 2.21 CPU) @ 1103.62/s
(n=2439)
1..2
Name "main::bench" used only once: possible typo at t/bad_code.t line 1.
ok 1 - bad extraction code - array ref
ok 2 - bad extraction code - scalar ref
no 'gen' code for test closure error at t/common.pm line 185.
unsupported argument, type: string, ref(code): CODE at t/common.pm line 312.
unsupported argument, type: string, ref(code): Regexp at t/common.pm line 312.
Sorting 100 elements of 'regex code'
Benchmark: running GRT_code, GRT_qr, GRT_string, SK_string, ST_code, ST_qr,
ST_string, gold, orcish_code, orcish_qr, orcish_string, plain_code, plain_qr,
plain_string for at least 2 CPU seconds...
GRT_code: 2 wallclock secs ( 2.11 usr + 0.00 sys = 2.11 CPU) @ 2629.86/s
(n=5549)
GRT_qr: 2 wallclock secs ( 2.13 usr + 0.00 sys = 2.13 CPU) @ 2724.88/s
(n=5804)
GRT_string: 2 wallclock secs ( 2.18 usr + 0.00 sys = 2.18 CPU) @ 2662.39/s
(n=5804)
SK_string: 2 wallclock secs ( 2.14 usr + 0.00 sys = 2.14 CPU) @ 4784.58/s
(n=10239)
ST_code: 2 wallclock secs ( 2.15 usr + 0.00 sys = 2.15 CPU) @ 1920.47/s
(n=4129)
ST_qr: 3 wallclock secs ( 2.17 usr + 0.00 sys = 2.17 CPU) @ 1965.90/s
(n=4266)
ST_string: 3 wallclock secs ( 2.23 usr + 0.00 sys = 2.23 CPU) @ 1913.00/s
(n=4266)
gold: 2 wallclock secs ( 2.09 usr + 0.00 sys = 2.09 CPU) @ 692.82/s
(n=1448)
orcish_code: 2 wallclock secs ( 2.10 usr + 0.00 sys = 2.10 CPU) @ 2031.43/s
(n=4266)
orcish_qr: 2 wallclock secs ( 2.14 usr + 0.00 sys = 2.14 CPU) @ 2088.32/s
(n=4469)
orcish_string: 2 wallclock secs ( 2.13 usr + 0.00 sys = 2.13 CPU) @
2098.12/s (n=4469)
plain_code: 3 wallclock secs ( 2.08 usr + 0.00 sys = 2.08 CPU) @ 517.79/s
(n=1077)
plain_qr: 2 wallclock secs ( 2.05 usr + 0.00 sys = 2.05 CPU) @ 577.56/s
(n=1184)
plain_string: 2 wallclock secs ( 2.26 usr + 0.00 sys = 2.26 CPU) @ 566.37/s
(n=1280)
unsupported argument, type: string, ref(code): CODE at t/common.pm line 312.
Sorting 100 elements of 'array code'
Benchmark: running GRT_code, GRT_string, SK_string, ST_code, ST_string, gold,
orcish_code, orcish_string, plain_code, plain_string for at least 2 CPU
seconds...
GRT_code: 2 wallclock secs ( 2.15 usr + 0.00 sys = 2.15 CPU) @ 3125.12/s
(n=6719)
GRT_string: 2 wallclock secs ( 2.14 usr + 0.00 sys = 2.14 CPU) @ 3583.64/s
(n=7669)
SK_string: 2 wallclock secs ( 2.13 usr + 0.00 sys = 2.13 CPU) @ 7232.86/s
(n=15406)
ST_code: 2 wallclock secs ( 2.18 usr + 0.00 sys = 2.18 CPU) @ 2238.07/s
(n=4879)
ST_string: 2 wallclock secs ( 2.13 usr + 0.00 sys = 2.13 CPU) @ 2406.10/s
(n=5125)
gold: 2 wallclock secs ( 2.11 usr + 0.00 sys = 2.11 CPU) @ 2122.75/s
(n=4479)
orcish_code: 3 wallclock secs ( 2.14 usr + 0.00 sys = 2.14 CPU) @ 1353.74/s
(n=2897)
orcish_string: 3 wallclock secs ( 2.14 usr + 0.00 sys = 2.14 CPU) @
1476.17/s (n=3159)
plain_code: 2 wallclock secs ( 2.13 usr + 0.00 sys = 2.13 CPU) @ 752.58/s
(n=1603)
plain_string: 2 wallclock secs ( 2.13 usr + 0.00 sys = 2.13 CPU) @ 999.06/s
(n=2128)
unsupported argument, type: string, ref(code): CODE at t/common.pm line 312.
Sorting 100 elements of 'hash code'
Benchmark: running GRT_code, GRT_string, SK_string, ST_code, ST_string, gold,
orcish_code, orcish_string, plain_code, plain_string for at least 2 CPU
seconds...
GRT_code: 2 wallclock secs ( 2.00 usr + 0.00 sys = 2.00 CPU) @ 3048.50/s
(n=6097)
GRT_string: 2 wallclock secs ( 2.19 usr + 0.00 sys = 2.19 CPU) @ 3501.83/s
(n=7669)
SK_string: 2 wallclock secs ( 2.11 usr + 0.00 sys = 2.11 CPU) @ 6791.00/s
(n=14329)
ST_code: 3 wallclock secs ( 2.14 usr + 0.00 sys = 2.14 CPU) @ 2176.64/s
(n=4658)
ST_string: 2 wallclock secs ( 2.19 usr + 0.00 sys = 2.19 CPU) @ 2454.34/s
(n=5375)
gold: 2 wallclock secs ( 2.13 usr + 0.00 sys = 2.13 CPU) @ 1938.97/s
(n=4130)
orcish_code: 2 wallclock secs ( 2.09 usr + 0.00 sys = 2.09 CPU) @ 1386.12/s
(n=2897)
orcish_string: 2 wallclock secs ( 2.22 usr + 0.00 sys = 2.22 CPU) @
1423.42/s (n=3160)
plain_code: 2 wallclock secs ( 2.10 usr + 0.00 sys = 2.10 CPU) @ 718.10/s
(n=1508)
plain_string: 2 wallclock secs ( 2.20 usr + 0.00 sys = 2.20 CPU) @ 935.91/s
(n=2059)
Sorting 100 elements of 'descending fixed - numeric data'
Benchmark: running GRT_fixed, GRT_varying, SK_varying, gold for at least 2 CPU
seconds...
GRT_fixed: 2 wallclock secs ( 2.36 usr + 0.00 sys = 2.36 CPU) @ 3033.90/s
(n=7160)
GRT_varying: 2 wallclock secs ( 2.18 usr + 0.00 sys = 2.18 CPU) @ 2899.08/s
(n=6320)
SK_varying: 2 wallclock secs ( 2.15 usr + 0.00 sys = 2.15 CPU) @ 7500.93/s
(n=16127)
gold: 2 wallclock secs ( 2.12 usr + 0.00 sys = 2.12 CPU) @ 2695.75/s
(n=5715)
1..11
unsupported argument, type: xxx, ref(code): at t/common.pm line 312.
ok 1 - NO_STYLE_unknown sort of unknown option
too few keys at t/common.pm line 318
# Looks like you planned 11 tests but ran 1.
# Looks like your test exited with 255 just after 1.
Name "main::bench" used only once: possible typo at t/GRT.t line 1.
Sorting 100 elements of 'simple string'
Benchmark: running GRT, SK, gold for at least 2 CPU seconds...
GRT: 2 wallclock secs ( 2.13 usr + 0.00 sys = 2.13 CPU) @ 3902.82/s
(n=8313)
SK: 2 wallclock secs ( 2.12 usr + 0.00 sys = 2.12 CPU) @ 8063.68/s
(n=17095)
gold: 2 wallclock secs ( 2.10 usr + 0.00 sys = 2.10 CPU) @ 2763.81/s
(n=5804)
Sorting 100 elements of 'unsigned integer'
Benchmark: running GRT, SK, gold for at least 2 CPU seconds...
GRT: 2 wallclock secs ( 2.09 usr + 0.00 sys = 2.09 CPU) @ 4535.89/s
(n=9480)
SK: 2 wallclock secs ( 2.18 usr + 0.00 sys = 2.18 CPU) @ 11600.46/s
(n=25289)
gold: 2 wallclock secs ( 2.02 usr + 0.00 sys = 2.02 CPU) @ 2873.27/s
(n=5804)
Sorting 100 elements of 'unsigned integer descending'
Benchmark: running GRT, SK, gold for at least 2 CPU seconds...
GRT: 2 wallclock secs ( 2.11 usr + 0.00 sys = 2.11 CPU) @ 4419.43/s
(n=9325)
SK: 2 wallclock secs ( 2.19 usr + 0.00 sys = 2.19 CPU) @ 11547.95/s
(n=25290)
gold: 2 wallclock secs ( 2.05 usr + 0.00 sys = 2.05 CPU) @ 2942.44/s
(n=6032)
Sorting 100 elements of 'signed integer'
Benchmark: running GRT, SK, gold for at least 2 CPU seconds...
GRT: 3 wallclock secs ( 2.23 usr + 0.00 sys = 2.23 CPU) @ 4600.00/s
(n=10258)
SK: 3 wallclock secs ( 2.22 usr + 0.00 sys = 2.22 CPU) @ 11553.15/s
(n=25648)
gold: 3 wallclock secs ( 2.16 usr + 0.00 sys = 2.16 CPU) @ 2925.46/s
(n=6319)
Sorting 100 elements of 'signed integer descending'
Benchmark: running GRT, SK, gold for at least 2 CPU seconds...
GRT: 2 wallclock secs ( 2.12 usr + 0.00 sys = 2.12 CPU) @ 4398.58/s
(n=9325)
SK: 3 wallclock secs ( 2.33 usr + 0.00 sys = 2.33 CPU) @ 11012.02/s
(n=25658)
gold: 3 wallclock secs ( 2.16 usr + 0.00 sys = 2.16 CPU) @ 2925.46/s
(n=6319)
Sorting 100 elements of 'unsigned float'
Benchmark: running GRT, SK, gold for at least 2 CPU seconds...
GRT: 3 wallclock secs ( 2.18 usr + 0.00 sys = 2.18 CPU) @ 3621.10/s
(n=7894)
SK: 3 wallclock secs ( 2.18 usr + 0.00 sys = 2.18 CPU) @ 10500.46/s
(n=22891)
gold: 3 wallclock secs ( 2.10 usr + 0.00 sys = 2.10 CPU) @ 2872.38/s
(n=6032)
Sorting 100 elements of 'unsigned float descending'
Benchmark: running GRT, SK, gold for at least 2 CPU seconds...
GRT: 2 wallclock secs ( 2.04 usr + 0.00 sys = 2.04 CPU) @ 3293.63/s
(n=6719)
SK: 2 wallclock secs ( 2.01 usr + 0.00 sys = 2.01 CPU) @ 10369.65/s
(n=20843)
gold: 2 wallclock secs ( 2.13 usr + 0.00 sys = 2.13 CPU) @ 2675.12/s
(n=5698)
Sorting 100 elements of 'signed float'
Benchmark: running GRT, SK, gold for at least 2 CPU seconds...
GRT: 2 wallclock secs ( 2.16 usr + 0.00 sys = 2.16 CPU) @ 3550.46/s
(n=7669)
SK: 2 wallclock secs ( 2.15 usr + 0.00 sys = 2.15 CPU) @ 10646.98/s
(n=22891)
gold: 2 wallclock secs ( 2.15 usr + 0.00 sys = 2.15 CPU) @ 2937.67/s
(n=6316)
Sorting 100 elements of 'signed float descending'
Benchmark: running GRT, SK, gold for at least 2 CPU seconds...
GRT: 2 wallclock secs ( 2.12 usr + 0.00 sys = 2.12 CPU) @ 3169.34/s
(n=6719)
SK: 2 wallclock secs ( 2.17 usr + 0.00 sys = 2.17 CPU) @ 10548.85/s
(n=22891)
gold: 2 wallclock secs ( 2.07 usr + 0.00 sys = 2.07 CPU) @ 2803.86/s
(n=5804)
Sorting 100 elements of 'plain string'
Benchmark: running GRT, SK, gold for at least 2 CPU seconds...
GRT: 2 wallclock secs ( 2.19 usr + 0.00 sys = 2.19 CPU) @ 3735.16/s
(n=8180)
SK: 2 wallclock secs ( 2.16 usr + 0.00 sys = 2.16 CPU) @ 7309.26/s
(n=15788)
gold: 3 wallclock secs ( 2.14 usr + 0.00 sys = 2.14 CPU) @ 2511.68/s
(n=5375)
unsupported argument, type: no_case, ref(code): at t/common.pm line 312.
Sorting 100 elements of 'plain string no_case'
Benchmark: running GRT, gold for at least 2 CPU seconds...
GRT: 2 wallclock secs ( 2.19 usr + 0.00 sys = 2.19 CPU) @ 4091.32/s
(n=8960)
gold: 2 wallclock secs ( 2.14 usr + 0.00 sys = 2.14 CPU) @ 2176.64/s
(n=4658)
Sorting 100 elements of 'fixed string'
Benchmark: running GRT, gold for at least 2 CPU seconds...
GRT: 2 wallclock secs ( 2.17 usr + 0.00 sys = 2.17 CPU) @ 3811.06/s
(n=8270)
gold: 2 wallclock secs ( 2.13 usr + 0.00 sys = 2.13 CPU) @ 2683.10/s
(n=5715)
Sorting 100 elements of 'string no_case fixed'
Benchmark: running GRT, gold for at least 2 CPU seconds...
GRT: 2 wallclock secs ( 2.21 usr + 0.00 sys = 2.21 CPU) @ 4055.66/s
(n=8963)
gold: 2 wallclock secs ( 2.07 usr + 0.00 sys = 2.07 CPU) @ 2250.24/s
(n=4658)
Sorting 100 elements of 'string descending fixed'
Benchmark: running GRT, gold for at least 2 CPU seconds...
GRT: 2 wallclock secs ( 2.13 usr + 0.00 sys = 2.13 CPU) @ 3600.94/s
(n=7670)
gold: 3 wallclock secs ( 2.17 usr + 0.00 sys = 2.17 CPU) @ 2633.64/s
(n=5715)
Sorting 100 elements of 'string no_case descending fixed'
Benchmark: running GRT, gold for at least 2 CPU seconds...
GRT: 3 wallclock secs ( 2.44 usr + 0.00 sys = 2.44 CPU) @ 3143.44/s
(n=7670)
gold: 3 wallclock secs ( 2.11 usr + 0.00 sys = 2.11 CPU) @ 2207.58/s
(n=4658)
Sorting 100 elements of 'varying string'
Benchmark: running GRT, SK, gold for at least 2 CPU seconds...
GRT: 2 wallclock secs ( 2.05 usr + 0.00 sys = 2.05 CPU) @ 2831.22/s
(n=5804)
SK: 2 wallclock secs ( 2.20 usr + 0.00 sys = 2.20 CPU) @ 7176.36/s
(n=15788)
gold: 2 wallclock secs ( 2.17 usr + 0.00 sys = 2.17 CPU) @ 2633.64/s
(n=5715)
Sorting 100 elements of 'string no_case varying'
Benchmark: running GRT, gold for at least 2 CPU seconds...
GRT: 2 wallclock secs ( 2.18 usr + 0.00 sys = 2.18 CPU) @ 3077.98/s
(n=6710)
gold: 2 wallclock secs ( 2.19 usr + 0.00 sys = 2.19 CPU) @ 2227.85/s
(n=4879)
Sorting 100 elements of 'string descending varying'
Benchmark: running GRT, SK, gold for at least 2 CPU seconds...
GRT: 2 wallclock secs ( 2.18 usr + 0.00 sys = 2.18 CPU) @ 2790.37/s
(n=6083)
SK: 2 wallclock secs ( 2.21 usr + 0.00 sys = 2.21 CPU) @ 6945.70/s
(n=15350)
gold: 2 wallclock secs ( 2.00 usr + 0.00 sys = 2.00 CPU) @ 2601.50/s
(n=5203)
Sorting 100 elements of 'string no_case descending varying'
Benchmark: running GRT, gold for at least 2 CPU seconds...
GRT: 2 wallclock secs ( 2.17 usr + 0.00 sys = 2.17 CPU) @ 2674.65/s
(n=5804)
gold: 2 wallclock secs ( 2.03 usr + 0.00 sys = 2.03 CPU) @ 2194.58/s
(n=4455)
Name "main::bench" used only once: possible typo at t/hashes.t line 1.
Sorting 100 elements of 'hashes of strings'
Benchmark: running GRT, SK, ST, gold, orcish, plain for at least 2 CPU
seconds...
GRT: 2 wallclock secs ( 2.34 usr + 0.00 sys = 2.34 CPU) @ 3282.05/s
(n=7680)
SK: 2 wallclock secs ( 2.03 usr + 0.00 sys = 2.03 CPU) @ 6987.19/s
(n=14184)
ST: 2 wallclock secs ( 2.21 usr + 0.00 sys = 2.21 CPU) @ 2432.13/s
(n=5375)
gold: 2 wallclock secs ( 2.08 usr + 0.00 sys = 2.08 CPU) @ 1895.19/s
(n=3942)
orcish: 2 wallclock secs ( 2.33 usr + 0.00 sys = 2.33 CPU) @ 1437.77/s
(n=3350)
plain: 2 wallclock secs ( 2.18 usr + 0.00 sys = 2.18 CPU) @ 944.95/s
(n=2060)
Sorting 100 elements of 'hashes of numbers'
Benchmark: running GRT, SK, ST, gold, orcish, plain for at least 2 CPU
seconds...
GRT: 2 wallclock secs ( 2.14 usr + 0.00 sys = 2.14 CPU) @ 3135.05/s
(n=6709)
SK: 3 wallclock secs ( 2.17 usr + 0.00 sys = 2.17 CPU) @ 8594.93/s
(n=18651)
ST: 2 wallclock secs ( 2.07 usr + 0.00 sys = 2.07 CPU) @ 2803.86/s
(n=5804)
gold: 2 wallclock secs ( 2.12 usr + 0.00 sys = 2.12 CPU) @ 1947.64/s
(n=4129)
orcish: 2 wallclock secs ( 2.09 usr + 0.00 sys = 2.09 CPU) @ 1602.39/s
(n=3349)
plain: 2 wallclock secs ( 2.12 usr + 0.00 sys = 2.12 CPU) @ 1153.77/s
(n=2446)
Sorting 100 elements of 'hashes of multiple strings'
Benchmark: running GRT, SK, ST, gold, orcish, plain for at least 2 CPU
seconds...
GRT: 2 wallclock secs ( 2.02 usr + 0.00 sys = 2.02 CPU) @ 2575.74/s
(n=5203)
SK: 2 wallclock secs ( 2.18 usr + 0.00 sys = 2.18 CPU) @ 5248.17/s
(n=11441)
ST: 3 wallclock secs ( 2.13 usr + 0.00 sys = 2.13 CPU) @ 1915.96/s
(n=4081)
gold: 2 wallclock secs ( 2.11 usr + 0.00 sys = 2.11 CPU) @ 1868.25/s
(n=3942)
orcish: 2 wallclock secs ( 2.11 usr + 0.00 sys = 2.11 CPU) @ 1410.43/s
(n=2976)
plain: 2 wallclock secs ( 2.17 usr + 0.00 sys = 2.17 CPU) @ 844.24/s
(n=1832)
Sorting 100 elements of 'hashes of multiple numbers'
Benchmark: running GRT, SK, ST, gold, orcish, plain for at least 2 CPU
seconds...
GRT: 4 wallclock secs ( 3.61 usr + 0.01 sys = 3.62 CPU) @ 1179.28/s
(n=4269)
SK: 3 wallclock secs ( 2.02 usr + 0.01 sys = 2.03 CPU) @ 4587.68/s
(n=9313)
ST: 2 wallclock secs ( 2.13 usr + 0.00 sys = 2.13 CPU) @ 2290.61/s
(n=4879)
gold: 2 wallclock secs ( 2.14 usr + 0.00 sys = 2.14 CPU) @ 1842.06/s
(n=3942)
orcish: 2 wallclock secs ( 2.18 usr + 0.00 sys = 2.18 CPU) @ 1540.83/s
(n=3359)
plain: 2 wallclock secs ( 2.20 usr + 0.00 sys = 2.20 CPU) @ 1108.64/s
(n=2439)
Name "main::bench" used only once: possible typo at t/init_code.t line 1.
Sorting 400 elements of 'init_code'
Benchmark: running GRT_init_code, GRT_no_init, SK_init_code, SK_no_init,
ST_init_code, ST_no_init, gold for at least 2 CPU seconds...
GRT_init_code: 2 wallclock secs ( 2.14 usr + 0.00 sys = 2.14 CPU) @ 214.02/s
(n=458)
GRT_no_init: 3 wallclock secs ( 2.10 usr + 0.00 sys = 2.10 CPU) @ 231.43/s
(n=486)
SK_init_code: 2 wallclock secs ( 2.18 usr + 0.00 sys = 2.18 CPU) @ 472.48/s
(n=1030)
SK_no_init: 2 wallclock secs ( 2.14 usr + 0.00 sys = 2.14 CPU) @ 738.32/s
(n=1580)
ST_init_code: 2 wallclock secs ( 2.10 usr + 0.00 sys = 2.10 CPU) @ 254.29/s
(n=534)
ST_no_init: 2 wallclock secs ( 2.15 usr + 0.00 sys = 2.15 CPU) @ 283.72/s
(n=610)
gold: 3 wallclock secs ( 2.08 usr + 0.00 sys = 2.08 CPU) @ 82.69/s
(n=172)
Sorting 1000 elements of 'init_code'
Benchmark: running GRT_init_code, GRT_no_init, SK_init_code, SK_no_init,
ST_init_code, ST_no_init, gold for at least 2 CPU seconds...
GRT_init_code: 2 wallclock secs ( 2.23 usr + 0.00 sys = 2.23 CPU) @ 78.48/s
(n=175)
GRT_no_init: 2 wallclock secs ( 2.08 usr + 0.00 sys = 2.08 CPU) @ 90.87/s
(n=189)
SK_init_code: 2 wallclock secs ( 2.18 usr + 0.00 sys = 2.18 CPU) @ 178.44/s
(n=389)
SK_no_init: 2 wallclock secs ( 2.20 usr + 0.00 sys = 2.20 CPU) @ 276.82/s
(n=609)
ST_init_code: 2 wallclock secs ( 2.15 usr + 0.00 sys = 2.15 CPU) @ 90.70/s
(n=195)
ST_no_init: 2 wallclock secs ( 2.00 usr + 0.00 sys = 2.00 CPU) @ 100.50/s
(n=201)
gold: 2 wallclock secs ( 2.14 usr + 0.00 sys = 2.14 CPU) @ 26.64/s
(n=57)
Sorting 400 elements of 'deep init_code'
Benchmark: running GRT_init_code, GRT_no_init, SK_init_code, SK_no_init,
ST_init_code, ST_no_init, gold for at least 2 CPU seconds...
GRT_init_code: 2 wallclock secs ( 2.07 usr + 0.00 sys = 2.07 CPU) @ 187.92/s
(n=389)
GRT_no_init: 2 wallclock secs ( 2.14 usr + 0.00 sys = 2.14 CPU) @ 181.78/s
(n=389)
SK_init_code: 2 wallclock secs ( 2.16 usr + 0.00 sys = 2.16 CPU) @ 388.43/s
(n=839)
SK_no_init: 2 wallclock secs ( 2.31 usr + 0.00 sys = 2.31 CPU) @ 481.82/s
(n=1113)
ST_init_code: 3 wallclock secs ( 2.07 usr + 0.00 sys = 2.07 CPU) @ 120.29/s
(n=249)
ST_no_init: 2 wallclock secs ( 2.02 usr + 0.00 sys = 2.02 CPU) @ 180.69/s
(n=365)
gold: 2 wallclock secs ( 2.12 usr + 0.00 sys = 2.12 CPU) @ 54.25/s
(n=115)
Sorting 1000 elements of 'deep init_code'
Benchmark: running GRT_init_code, GRT_no_init, SK_init_code, SK_no_init,
ST_init_code, ST_no_init, gold for at least 2 CPU seconds...
GRT_init_code: 2 wallclock secs ( 2.13 usr + 0.00 sys = 2.13 CPU) @ 74.65/s
(n=159)
GRT_no_init: 2 wallclock secs ( 2.09 usr + 0.00 sys = 2.09 CPU) @ 72.73/s
(n=152)
SK_init_code: 3 wallclock secs ( 2.07 usr + 0.00 sys = 2.07 CPU) @ 154.59/s
(n=320)
SK_no_init: 3 wallclock secs ( 2.03 usr + 0.00 sys = 2.03 CPU) @ 213.79/s
(n=434)
ST_init_code: 2 wallclock secs ( 2.01 usr + 0.00 sys = 2.01 CPU) @ 86.57/s
(n=174)
ST_no_init: 2 wallclock secs ( 2.14 usr + 0.00 sys = 2.14 CPU) @ 88.79/s
(n=190)
gold: 2 wallclock secs ( 2.03 usr + 0.00 sys = 2.03 CPU) @ 18.23/s
(n=37)
unsupported argument, type: ref_in, ref(code): at t/common.pm line 312.
unsupported argument, type: ref_in, ref(code): at t/common.pm line 312.
unsupported argument, type: ref_out, ref(code): at t/common.pm line 312.
Sorting 100 elements of 'simple string'
Benchmark: running GRT_default, GRT_ref_in, GRT_ref_in_ref_out, GRT_ref_out,
SK_default, ST_default, ST_ref_in, ST_ref_in_ref_out, ST_ref_out, gold,
orcish_default, orcish_ref_in, orcish_ref_in_ref_out, orcish_ref_out,
plain_default, plain_ref_in, plain_ref_in_ref_out, plain_ref_out for at least 2
CPU seconds...
GRT_default: 2 wallclock secs ( 2.18 usr + 0.00 sys = 2.18 CPU) @ 3922.94/s
(n=8552)
GRT_ref_in: 2 wallclock secs ( 2.11 usr + 0.00 sys = 2.11 CPU) @ 3919.43/s
(n=8270)
GRT_ref_in_ref_out: 3 wallclock secs ( 2.12 usr + 0.00 sys = 2.12 CPU) @
4221.70/s (n=8950)
GRT_ref_out: 2 wallclock secs ( 2.11 usr + 0.00 sys = 2.11 CPU) @ 4227.49/s
(n=8920)
SK_default: 2 wallclock secs ( 2.12 usr + 0.00 sys = 2.12 CPU) @ 7447.17/s
(n=15788)
ST_default: 2 wallclock secs ( 2.08 usr + 0.00 sys = 2.08 CPU) @ 2504.81/s
(n=5210)
ST_ref_in: 2 wallclock secs ( 2.13 usr + 0.00 sys = 2.13 CPU) @ 2446.01/s
(n=5210)
ST_ref_in_ref_out: 2 wallclock secs ( 2.17 usr + 0.00 sys = 2.17 CPU) @
2474.19/s (n=5369)
ST_ref_out: 2 wallclock secs ( 2.09 usr + 0.00 sys = 2.09 CPU) @ 2492.82/s
(n=5210)
gold: 2 wallclock secs ( 2.14 usr + 0.00 sys = 2.14 CPU) @ 2712.15/s
(n=5804)
orcish_default: 2 wallclock secs ( 2.10 usr + 0.00 sys = 2.10 CPU) @
2254.29/s (n=4734)
orcish_ref_in: 2 wallclock secs ( 2.09 usr + 0.00 sys = 2.09 CPU) @
2228.71/s (n=4658)
orcish_ref_in_ref_out: 3 wallclock secs ( 2.12 usr + 0.00 sys = 2.12 CPU) @
2312.74/s (n=4903)
orcish_ref_out: 2 wallclock secs ( 2.15 usr + 0.00 sys = 2.15 CPU) @
2269.30/s (n=4879)
plain_default: 2 wallclock secs ( 2.21 usr + 0.00 sys = 2.21 CPU) @
1157.47/s (n=2558)
plain_ref_in: 2 wallclock secs ( 2.14 usr + 0.00 sys = 2.14 CPU) @ 1139.72/s
(n=2439)
plain_ref_in_ref_out: 2 wallclock secs ( 2.19 usr + 0.00 sys = 2.19 CPU) @
1168.49/s (n=2559)
plain_ref_out: 3 wallclock secs ( 2.22 usr + 0.00 sys = 2.22 CPU) @
1152.70/s (n=2559)
Sorting 1000 elements of 'simple string'
Benchmark: running GRT_default, GRT_ref_in, GRT_ref_in_ref_out, GRT_ref_out,
SK_default, ST_default, ST_ref_in, ST_ref_in_ref_out, ST_ref_out, gold,
orcish_default, orcish_ref_in, orcish_ref_in_ref_out, orcish_ref_out,
plain_default, plain_ref_in, plain_ref_in_ref_out, plain_ref_out for at least 2
CPU seconds...
GRT_default: 2 wallclock secs ( 2.02 usr + 0.00 sys = 2.02 CPU) @ 355.94/s
(n=719)
GRT_ref_in: 2 wallclock secs ( 2.14 usr + 0.00 sys = 2.14 CPU) @ 352.34/s
(n=754)
GRT_ref_in_ref_out: 2 wallclock secs ( 2.25 usr + 0.00 sys = 2.25 CPU) @
372.89/s (n=839)
GRT_ref_out: 2 wallclock secs ( 2.19 usr + 0.01 sys = 2.20 CPU) @ 376.82/s
(n=829)
SK_default: 2 wallclock secs ( 2.12 usr + 0.00 sys = 2.12 CPU) @ 603.30/s
(n=1279)
ST_default: 3 wallclock secs ( 2.10 usr + 0.00 sys = 2.10 CPU) @ 190.48/s
(n=400)
ST_ref_in: 2 wallclock secs ( 2.04 usr + 0.00 sys = 2.04 CPU) @ 188.24/s
(n=384)
ST_ref_in_ref_out: 2 wallclock secs ( 2.14 usr + 0.00 sys = 2.14 CPU) @
187.38/s (n=401)
ST_ref_out: 2 wallclock secs ( 2.15 usr + 0.00 sys = 2.15 CPU) @ 186.51/s
(n=401)
gold: 2 wallclock secs ( 2.14 usr + 0.00 sys = 2.14 CPU) @ 167.76/s
(n=359)
orcish_default: 2 wallclock secs ( 2.02 usr + 0.00 sys = 2.02 CPU) @
151.98/s (n=307)
orcish_ref_in: 2 wallclock secs ( 2.08 usr + 0.00 sys = 2.08 CPU) @ 153.85/s
(n=320)
orcish_ref_in_ref_out: 2 wallclock secs ( 2.04 usr + 0.00 sys = 2.04 CPU) @
156.86/s (n=320)
orcish_ref_out: 2 wallclock secs ( 2.15 usr + 0.00 sys = 2.15 CPU) @
153.49/s (n=330)
plain_default: 2 wallclock secs ( 2.19 usr + 0.00 sys = 2.19 CPU) @ 71.69/s
(n=157)
plain_ref_in: 3 wallclock secs ( 2.22 usr + 0.00 sys = 2.22 CPU) @ 70.72/s
(n=157)
plain_ref_in_ref_out: 2 wallclock secs ( 2.06 usr + 0.00 sys = 2.06 CPU) @
73.79/s (n=152)
plain_ref_out: 2 wallclock secs ( 2.08 usr + 0.00 sys = 2.08 CPU) @ 72.60/s
(n=151)
unsupported argument, type: ref_in, ref(code): at t/common.pm line 312.
unsupported argument, type: ref_in, ref(code): at t/common.pm line 312.
unsupported argument, type: ref_out, ref(code): at t/common.pm line 312.
Sorting 100 elements of 'simple number'
Benchmark: running GRT_default, GRT_ref_in, GRT_ref_in_ref_out, GRT_ref_out,
SK_default, ST_default, ST_ref_in, ST_ref_in_ref_out, ST_ref_out, gold,
orcish_default, orcish_ref_in, orcish_ref_in_ref_out, orcish_ref_out,
plain_default, plain_ref_in, plain_ref_in_ref_out, plain_ref_out for at least 2
CPU seconds...
GRT_default: 2 wallclock secs ( 2.15 usr + 0.00 sys = 2.15 CPU) @ 3409.30/s
(n=7330)
GRT_ref_in: 2 wallclock secs ( 2.10 usr + 0.00 sys = 2.10 CPU) @ 3486.19/s
(n=7321)
GRT_ref_in_ref_out: 2 wallclock secs ( 2.12 usr + 0.00 sys = 2.12 CPU) @
3617.45/s (n=7669)
GRT_ref_out: 3 wallclock secs ( 2.13 usr + 0.00 sys = 2.13 CPU) @ 3706.10/s
(n=7894)
SK_default: 3 wallclock secs ( 2.29 usr + 0.00 sys = 2.29 CPU) @ 9389.96/s
(n=21503)
ST_default: 2 wallclock secs ( 2.05 usr + 0.00 sys = 2.05 CPU) @ 2831.22/s
(n=5804)
ST_ref_in: 2 wallclock secs ( 2.10 usr + 0.00 sys = 2.10 CPU) @ 2763.81/s
(n=5804)
ST_ref_in_ref_out: 2 wallclock secs ( 2.12 usr + 0.00 sys = 2.12 CPU) @
2845.28/s (n=6032)
ST_ref_out: 2 wallclock secs ( 2.05 usr + 0.00 sys = 2.05 CPU) @ 2831.22/s
(n=5804)
gold: 2 wallclock secs ( 2.07 usr + 0.00 sys = 2.07 CPU) @ 2803.86/s
(n=5804)
orcish_default: 2 wallclock secs ( 2.15 usr + 0.00 sys = 2.15 CPU) @
1984.19/s (n=4266)
orcish_ref_in: 2 wallclock secs ( 2.16 usr + 0.00 sys = 2.16 CPU) @
1979.63/s (n=4276)
orcish_ref_in_ref_out: 3 wallclock secs ( 2.18 usr + 0.00 sys = 2.18 CPU) @
2050.00/s (n=4469)
orcish_ref_out: 2 wallclock secs ( 2.13 usr + 0.00 sys = 2.13 CPU) @
2002.82/s (n=4266)
plain_default: 2 wallclock secs ( 2.17 usr + 0.00 sys = 2.17 CPU) @
1123.96/s (n=2439)
plain_ref_in: 2 wallclock secs ( 2.13 usr + 0.00 sys = 2.13 CPU) @ 1093.43/s
(n=2329)
plain_ref_in_ref_out: 2 wallclock secs ( 2.20 usr + 0.00 sys = 2.20 CPU) @
1108.64/s (n=2439)
plain_ref_out: 3 wallclock secs ( 2.17 usr + 0.00 sys = 2.17 CPU) @
1123.96/s (n=2439)
Sorting 1000 elements of 'simple number'
Benchmark: running GRT_default, GRT_ref_in, GRT_ref_in_ref_out, GRT_ref_out,
SK_default, ST_default, ST_ref_in, ST_ref_in_ref_out, ST_ref_out, gold,
orcish_default, orcish_ref_in, orcish_ref_in_ref_out, orcish_ref_out,
plain_default, plain_ref_in, plain_ref_in_ref_out, plain_ref_out for at least 2
CPU seconds...
GRT_default: 2 wallclock secs ( 2.01 usr + 0.00 sys = 2.01 CPU) @ 323.38/s
(n=650)
GRT_ref_in: 2 wallclock secs ( 2.00 usr + 0.00 sys = 2.00 CPU) @ 322.00/s
(n=644)
GRT_ref_in_ref_out: 2 wallclock secs ( 2.16 usr + 0.00 sys = 2.16 CPU) @
327.78/s (n=708)
GRT_ref_out: 2 wallclock secs ( 2.11 usr + 0.00 sys = 2.11 CPU) @ 333.18/s
(n=703)
SK_default: 2 wallclock secs ( 2.14 usr + 0.00 sys = 2.14 CPU) @ 896.73/s
(n=1919)
ST_default: 2 wallclock secs ( 2.14 usr + 0.00 sys = 2.14 CPU) @ 212.62/s
(n=455)
ST_ref_in: 2 wallclock secs ( 2.09 usr + 0.00 sys = 2.09 CPU) @ 207.66/s
(n=434)
ST_ref_in_ref_out: 3 wallclock secs ( 2.14 usr + 0.00 sys = 2.14 CPU) @
215.42/s (n=461)
ST_ref_out: 2 wallclock secs ( 2.14 usr + 0.00 sys = 2.14 CPU) @ 215.42/s
(n=461)
gold: 2 wallclock secs ( 2.10 usr + 0.00 sys = 2.10 CPU) @ 170.95/s
(n=359)
orcish_default: 2 wallclock secs ( 2.19 usr + 0.00 sys = 2.19 CPU) @
129.22/s (n=283)
orcish_ref_in: 2 wallclock secs ( 2.14 usr + 0.00 sys = 2.14 CPU) @ 125.70/s
(n=269)
orcish_ref_in_ref_out: 3 wallclock secs ( 2.33 usr + 0.00 sys = 2.33 CPU) @
115.88/s (n=270)
orcish_ref_out: 2 wallclock secs ( 2.24 usr + 0.00 sys = 2.24 CPU) @
126.34/s (n=283)
plain_default: 2 wallclock secs ( 2.00 usr + 0.00 sys = 2.00 CPU) @ 68.00/s
(n=136)
plain_ref_in: 2 wallclock secs ( 2.14 usr + 0.00 sys = 2.14 CPU) @ 66.82/s
(n=143)
plain_ref_in_ref_out: 2 wallclock secs ( 2.03 usr + 0.00 sys = 2.03 CPU) @
67.00/s (n=136)
plain_ref_out: 2 wallclock secs ( 2.19 usr + 0.00 sys = 2.19 CPU) @ 68.04/s
(n=149)
1..2
Name "main::bench" used only once: possible typo at t/name.t line 1.
ok 1 - sort name export
ok 2 - sort number
Name "main::bench" used only once: possible typo at t/numbers.t line 1.
Use of uninitialized value $_[0] in pattern match (m//) at
/usr/local/lib/perl/5.14.2/Sort/Key.pm line 84.
unknown key type ''
at t/common.pm line 318
unsupported argument, type: ref_in, ref(code): at t/common.pm line 312.
Sorting 100 elements of 'ref_in varying - max length'
Benchmark: running GRT_ref_in, gold for at least 2 CPU seconds...
GRT_ref_in: 1 wallclock secs ( 2.09 usr + 0.00 sys = 2.09 CPU) @ 1757.42/s
(n=3673)
gold: 2 wallclock secs ( 2.08 usr + 0.00 sys = 2.08 CPU) @ 1642.79/s
(n=3417)
unsupported argument, type: ref_in, ref(code): at t/common.pm line 312.
Sorting 100 elements of 'ref_in varying descending - max length'
Benchmark: running GRT_ref_in, gold for at least 2 CPU seconds...
GRT_ref_in: 2 wallclock secs ( 2.17 usr + 0.00 sys = 2.17 CPU) @ 1574.65/s
(n=3417)
gold: 2 wallclock secs ( 2.13 usr + 0.00 sys = 2.13 CPU) @ 1680.28/s
(n=3579)
Name "main::bench" used only once: possible typo at t/regex.t line 1.
Sorting 100 elements of 'regex string'
Benchmark: running GRT, SK, ST, gold, orcish, plain for at least 2 CPU
seconds...
GRT: 2 wallclock secs ( 2.17 usr + 0.00 sys = 2.17 CPU) @ 2912.44/s
(n=6320)
SK: 2 wallclock secs ( 2.24 usr + 0.00 sys = 2.24 CPU) @ 5038.84/s
(n=11287)
ST: 2 wallclock secs ( 2.00 usr + 0.00 sys = 2.00 CPU) @ 2074.50/s
(n=4149)
gold: 2 wallclock secs ( 2.13 usr + 0.00 sys = 2.13 CPU) @ 679.81/s
(n=1448)
orcish: 3 wallclock secs ( 2.20 usr + 0.00 sys = 2.20 CPU) @ 1827.73/s
(n=4021)
plain: 2 wallclock secs ( 2.15 usr + 0.00 sys = 2.15 CPU) @ 594.88/s
(n=1279)
unsupported argument, type: string, ref(code): Regexp at t/common.pm line 312.
Sorting 100 elements of 'qr string'
Benchmark: running GRT, ST, gold, orcish, plain for at least 2 CPU seconds...
GRT: 2 wallclock secs ( 2.10 usr + 0.00 sys = 2.10 CPU) @ 2872.38/s
(n=6032)
ST: 2 wallclock secs ( 2.11 usr + 0.00 sys = 2.11 CPU) @ 2026.54/s
(n=4276)
gold: 2 wallclock secs ( 2.19 usr + 0.00 sys = 2.19 CPU) @ 721.00/s
(n=1579)
orcish: 2 wallclock secs ( 2.13 usr + 0.00 sys = 2.13 CPU) @ 1771.36/s
(n=3773)
plain: 2 wallclock secs ( 2.17 usr + 0.00 sys = 2.17 CPU) @ 589.86/s
(n=1280)
Name "main::bench" used only once: possible typo at t/simple.t line 1.
Sorting 100 elements of 'simple string'
Benchmark: running GRT, SK, ST, gold, orcish, plain for at least 2 CPU
seconds...
GRT: 2 wallclock secs ( 2.05 usr + 0.00 sys = 2.05 CPU) @ 3832.20/s
(n=7856)
SK: 2 wallclock secs ( 2.24 usr + 0.00 sys = 2.24 CPU) @ 7383.93/s
(n=16540)
ST: 2 wallclock secs ( 2.04 usr + 0.00 sys = 2.04 CPU) @ 2553.92/s
(n=5210)
gold: 2 wallclock secs ( 2.05 usr + 0.00 sys = 2.05 CPU) @ 2787.80/s
(n=5715)
orcish: 2 wallclock secs ( 2.10 usr + 0.00 sys = 2.10 CPU) @ 4068.10/s
(n=8543)
plain: 2 wallclock secs ( 2.08 usr + 0.00 sys = 2.08 CPU) @ 1199.52/s
(n=2495)
Sorting 100 elements of 'simple number'
Benchmark: running GRT, SK, ST, gold, orcish, plain for at least 2 CPU
seconds...
GRT: 2 wallclock secs ( 2.11 usr + 0.00 sys = 2.11 CPU) @ 3469.67/s
(n=7321)
SK: 2 wallclock secs ( 2.14 usr + 0.00 sys = 2.14 CPU) @ 11985.05/s
(n=25648)
ST: 2 wallclock secs ( 2.21 usr + 0.00 sys = 2.21 CPU) @ 3239.37/s
(n=7159)
gold: 2 wallclock secs ( 2.12 usr + 0.00 sys = 2.12 CPU) @ 2929.25/s
(n=6210)
orcish: 2 wallclock secs ( 2.14 usr + 0.00 sys = 2.14 CPU) @ 3992.06/s
(n=8543)
plain: 2 wallclock secs ( 2.10 usr + 0.00 sys = 2.10 CPU) @ 1161.43/s
(n=2439)
unsupported argument, type: string_data, ref(code): at t/common.pm line 312.
Sorting 100 elements of 'simple string'
Benchmark: running GRT_index, GRT_string, SK_index, gold for at least 2 CPU
seconds...
GRT_index: 2 wallclock secs ( 2.18 usr + 0.00 sys = 2.18 CPU) @ 3621.10/s
(n=7894)
GRT_string: 2 wallclock secs ( 2.11 usr + 0.00 sys = 2.11 CPU) @ 3741.23/s
(n=7894)
SK_index: 3 wallclock secs ( 2.17 usr + 0.00 sys = 2.17 CPU) @ 7073.73/s
(n=15350)
gold: 2 wallclock secs ( 2.02 usr + 0.00 sys = 2.02 CPU) @ 2575.74/s
(n=5203)
Sorting 1000 elements of 'simple string'
Benchmark: running GRT_index, GRT_string, SK_index, gold for at least 2 CPU
seconds...
GRT_index: 2 wallclock secs ( 2.10 usr + 0.00 sys = 2.10 CPU) @ 337.14/s
(n=708)
GRT_string: 2 wallclock secs ( 2.06 usr + 0.00 sys = 2.06 CPU) @ 349.03/s
(n=719)
SK_index: 2 wallclock secs ( 2.14 usr + 0.00 sys = 2.14 CPU) @ 571.50/s
(n=1223)
gold: 2 wallclock secs ( 2.14 usr + 0.00 sys = 2.14 CPU) @ 165.42/s
(n=354)
unsupported argument, type: string_data, ref(code): at t/common.pm line 312.
Sorting 100 elements of 'simple string no-case'
Benchmark: running GRT_index, GRT_string, gold for at least 2 CPU seconds...
GRT_index: 2 wallclock secs ( 2.09 usr + 0.00 sys = 2.09 CPU) @ 3956.46/s
(n=8269)
GRT_string: 3 wallclock secs ( 2.12 usr + 0.00 sys = 2.12 CPU) @ 4029.72/s
(n=8543)
gold: 2 wallclock secs ( 2.12 usr + 0.00 sys = 2.12 CPU) @ 2197.17/s
(n=4658)
Sorting 1000 elements of 'simple string no-case'
Benchmark: running GRT_index, GRT_string, gold for at least 2 CPU seconds...
GRT_index: 2 wallclock secs ( 2.13 usr + 0.00 sys = 2.13 CPU) @ 340.85/s
(n=726)
GRT_string: 2 wallclock secs ( 2.13 usr + 0.00 sys = 2.13 CPU) @ 370.89/s
(n=790)
gold: 2 wallclock secs ( 2.16 usr + 0.00 sys = 2.16 CPU) @ 138.43/s
(n=299)
unsupported argument, type: string_data, ref(code): at t/common.pm line 312.
Sorting 100 elements of 'simple string descending'
Benchmark: running GRT_index, GRT_string, SK_index, gold for at least 2 CPU
seconds...
GRT_index: 3 wallclock secs ( 2.13 usr + 0.00 sys = 2.13 CPU) @ 2724.88/s
(n=5804)
GRT_string: 2 wallclock secs ( 2.02 usr + 0.00 sys = 2.02 CPU) @ 2820.79/s
(n=5698)
SK_index: 2 wallclock secs ( 2.16 usr + 0.00 sys = 2.16 CPU) @ 7106.02/s
(n=15349)
gold: 2 wallclock secs ( 2.15 usr + 0.00 sys = 2.15 CPU) @ 2658.14/s
(n=5715)
Sorting 1000 elements of 'simple string descending'
Benchmark: running GRT_index, GRT_string, SK_index, gold for at least 2 CPU
seconds...
GRT_index: 2 wallclock secs ( 2.11 usr + 0.00 sys = 2.11 CPU) @ 265.40/s
(n=560)
GRT_string: 2 wallclock secs ( 2.09 usr + 0.00 sys = 2.09 CPU) @ 267.46/s
(n=559)
SK_index: 3 wallclock secs ( 2.14 usr + 0.00 sys = 2.14 CPU) @ 569.63/s
(n=1219)
gold: 2 wallclock secs ( 2.15 usr + 0.00 sys = 2.15 CPU) @ 164.65/s
(n=354)
unsupported argument, type: string_data, ref(code): at t/common.pm line 312.
Sorting 100 elements of 'simple string no-case descending'
Benchmark: running GRT_index, GRT_string, gold for at least 2 CPU seconds...
GRT_index: 2 wallclock secs ( 2.11 usr + 0.00 sys = 2.11 CPU) @ 2708.53/s
(n=5715)
GRT_string: 2 wallclock secs ( 2.13 usr + 0.00 sys = 2.13 CPU) @ 2724.88/s
(n=5804)
gold: 2 wallclock secs ( 2.10 usr + 0.00 sys = 2.10 CPU) @ 2218.10/s
(n=4658)
Sorting 1000 elements of 'simple string no-case descending'
Benchmark: running GRT_index, GRT_string, gold for at least 2 CPU seconds...
GRT_index: 2 wallclock secs ( 2.21 usr + 0.00 sys = 2.21 CPU) @ 253.39/s
(n=560)
GRT_string: 3 wallclock secs ( 2.09 usr + 0.00 sys = 2.09 CPU) @ 263.16/s
(n=550)
gold: 2 wallclock secs ( 2.10 usr + 0.00 sys = 2.10 CPU) @ 139.05/s
(n=292)
unsupported argument, type: string_data, ref(code): at t/common.pm line 312.
Sorting 100 elements of 'simple number'
Benchmark: running GRT_index, GRT_string, SK_index, gold for at least 2 CPU
seconds...
GRT_index: 2 wallclock secs ( 2.26 usr + 0.00 sys = 2.26 CPU) @ 3393.81/s
(n=7670)
GRT_string: 2 wallclock secs ( 2.11 usr + 0.00 sys = 2.11 CPU) @ 3393.36/s
(n=7160)
SK_index: 2 wallclock secs ( 2.18 usr + 0.00 sys = 2.18 CPU) @ 8555.50/s
(n=18651)
gold: 2 wallclock secs ( 2.12 usr + 0.00 sys = 2.12 CPU) @ 2695.75/s
(n=5715)
Sorting 1000 elements of 'simple number'
Benchmark: running GRT_index, GRT_string, SK_index, gold for at least 2 CPU
seconds...
GRT_index: 2 wallclock secs ( 2.17 usr + 0.00 sys = 2.17 CPU) @ 323.96/s
(n=703)
GRT_string: 3 wallclock secs ( 2.14 usr + 0.00 sys = 2.14 CPU) @ 313.08/s
(n=670)
SK_index: 2 wallclock secs ( 2.13 usr + 0.00 sys = 2.13 CPU) @ 752.58/s
(n=1603)
gold: 2 wallclock secs ( 2.07 usr + 0.00 sys = 2.07 CPU) @ 173.43/s
(n=359)
unsupported argument, type: string_data, ref(code): at t/common.pm line 312.
Sorting 100 elements of 'string:number'
Benchmark: running GRT_index, GRT_string, SK_index, gold for at least 2 CPU
seconds...
GRT_index: 2 wallclock secs ( 2.14 usr + 0.00 sys = 2.14 CPU) @ 936.92/s
(n=2005)
GRT_string: 2 wallclock secs ( 2.19 usr + 0.00 sys = 2.19 CPU) @ 940.64/s
(n=2060)
SK_index: 2 wallclock secs ( 2.16 usr + 0.00 sys = 2.16 CPU) @ 3110.65/s
(n=6719)
gold: 2 wallclock secs ( 2.05 usr + 0.00 sys = 2.05 CPU) @ 633.17/s
(n=1298)
Sorting 1000 elements of 'string:number'
Benchmark: running GRT_index, GRT_string, SK_index, gold for at least 2 CPU
seconds...
GRT_index: 2 wallclock secs ( 2.09 usr + 0.00 sys = 2.09 CPU) @ 90.91/s
(n=190)
GRT_string: 2 wallclock secs ( 2.09 usr + 0.00 sys = 2.09 CPU) @ 90.91/s
(n=190)
SK_index: 2 wallclock secs ( 2.23 usr + 0.00 sys = 2.23 CPU) @ 273.54/s
(n=610)
gold: 2 wallclock secs ( 2.13 usr + 0.00 sys = 2.13 CPU) @ 31.92/s
(n=68)
--
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
http://learn.perl.org/