On 8/27/07, Chas Owens <[EMAIL PROTECTED]> wrote:
snip
> Rate join hard joinqr opt qr
> join 42708/s -- -0% -1% -11% -56%
> hard 42708/s 0% -- -1% -11% -56%
> joinqr 43115/s 1% 1% -- -11% -56%
> opt 48188/s 13% 13% 12% -- -50%
> qr 97303/s 128% 128% 126% 102% --
snip
Somehow I lost the top of the benchmark program, here it is in full:
#!/usr/bin/perl
use strict;
use warnings;
use Benchmark;
my @replace = (
#replace with
[ qr/foo/, 'Foo' ],
[ qr/bar/, 'Bar' ],
[ qr/baz/, 'Baz' ]
);
my %replace = (
foo => "Foo",
bar => "Bar",
baz => "Baz"
);
my $str = join '|', keys %replace;
my $re = qr/$str/;
my $text = "This is a test of replacements for foo,
bar, and baz. The output should have
foo looking like Foo, bar looking like
Bar, and likewise for baz.";
my %subs = (
'qr' => sub {
my $t = $text;
$t =~ s/$_->[0]/$_->[1]/g for @replace;
return $t;
},
joinqr => sub {
my $t = $text;
$t =~ s/($re)/$replace{$1}/g;
return $t;
},
join => sub {
my $t = $text;
$t =~ s/($str)/$replace{$1}/g;
return $t;
},
hard => sub {
my $t = $text;
$t =~ s/(foo|bar|baz)/$replace{$1}/g;
return $t;
},
opt => sub {
my $t = $text;
$t =~ s/(foo|ba[rz])/$replace{$1}/g;
return $t;
}
);
Benchmark::cmpthese(-1, \%subs);
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/