Show code and prove it, its easy
#!/usr/bin/perl --
use Benchmark qw/ cmpthese /;
print "$]\n";
cmpthese(
-3,
{
circumcised => sub {
my $what = 'WWWA';
$what =~ /AB.*Z/gc; # fail one
$what .='DBBBABC';
pos($what) = 8;
$what =~ /AB.*Z/gc; # fail another
return;
},
uncut => sub {
my $what = 'WWWA';
$what =~ /AB.*Z/gc; # fail one
$what .='DBBBABC';
$what =~ /AB.*Z/gc; # fail another
return;
},
},
);
print "\n\n";
cmpthese(
-3,
{
circumcised => sub {
my $what = 'WWWA';
$what =~ /AB.*Z/gc; # fail one
$what .='DBBBABCZ';
pos($what) = 8;
$what =~ /AB.*Z/gc; # match one
return;
},
uncut => sub {
my $what = 'WWWA';
$what =~ /AB.*Z/gc; # fail one
$what .='DBBBABCZ';
$what =~ /AB.*Z/gc; # match one
return;
},
},
);
print "\n\n";
cmpthese(
-3,
{
circumcised => sub {
my $what = 'WWWA';
$what =~ /AB.*Z/gc; # fail one
$what .='DBBBABCZ';
substr $what, 0, 8, '';
$what =~ /AB.*Z/gc; # match one
return;
},
uncut => sub {
my $what = 'WWWA';
$what =~ /AB.*Z/gc; # fail one
$what .='DBBBABCZ';
$what =~ /AB.*Z/gc; # match one
return;
},
},
);
print "\n\n";
cmpthese(
-3,
{
circumcised => sub {
my $what = 'WWWA';
$what =~ /AB.*Z/; # fail one
$what .='DBBBABCZ';
substr $what, 0, 8, '';
$what =~ /AB.*Z/; # match one
return;
},
uncut => sub {
my $what = 'WWWA';
$what =~ /AB.*Z/; # fail one
$what .='DBBBABCZ';
$what =~ /AB.*Z/; # match one
return;
},
},
);
print "\n\n";
__END__
5.014001
Rate circumcised uncut
circumcised 370001/s -- -70%
uncut 1245010/s 236% --
Rate circumcised uncut
circumcised 301014/s -- -41%
uncut 506153/s 68% --
Rate circumcised uncut
circumcised 398024/s -- -19%
uncut 492750/s 24% --
Rate circumcised uncut
circumcised 554597/s -- -26%
uncut 749156/s 35% --
| [reply] [d/l] [select] |
Sorry, I haven't found any time spending on this topic the last days...
Your benchmarks are not exactly what I thought about, what I have in my mind is:
#!/usr/bin/perl --
use Benchmark qw/ cmpthese /;
print "$]\n";
my $what1 = 'WWWA';
my $what2 = $what1;
cmpthese(
-3,
{
circumcised => sub {
$what1 =~ /EB.*Z/; # fail one
$what1 .='DBBBABC';
substr $what1, 0, 8, '';
$what1 =~ /EB.*Z/; # fail another
return;
},
uncut => sub {
$what2 =~ /EB.*Z/; # fail one
$what2 .='DBBBABC';
$what2 =~ /EB.*Z/; # fail another
return;
},
},
);
print "\n\n";
__END__
5.010001
Rate uncut circumcised
uncut 2735/s -- -100%
circumcised 3398892/s 124179% --
| [reply] [d/l] |
Your benchmarks are not exactly what I thought about, what I have in my mind is: I see :)
But, still, neither results seems very important , network is always much slower than both
| [reply] [d/l] |