Benchmark: timing 100 iterations of w/o study, with study, with study in loop...
w/o study: 346 wallclock secs (306.95 usr + 8.69 sys = 315.64 CPU)
with study: 317 wallclock secs (301.91 usr + 8.53 sys = 310.44 CPU)
with study in loop: 369 wallclock secs (347.37 usr + 8.39 sys = 355.76 CPU)
####
#!/usr/local/bin/perl -w --
use Benchmark qw(timethese clearallcache);
$FILENAME = "datafile.txt";
$TEXT = "lease";
$STUDIED_TEXT = $TEXT;
study($STUDIED_TEXT);
$COUNT = 100;
clearallcache;
&timethese($COUNT,
{ 'with study' => \&fn1,
'w/o study' => \&fn2,
'with study in loop' => \&fn3 } );
sub fn1 {
&mystat($FILENAME);
print(STDERR "Searching for $STUDIED_TEXT\t");
open(DF, $FILENAME);
my $count = 0;
while ($line = ) {
$count++ if ($line =~ m/$STUDIED_TEXT/);
}
print(STDERR "fn1 : Lines found : $count\n");
close(DF);
}
sub fn2 {
&mystat($FILENAME);
print(STDERR "Searching for $TEXT\t");
open(DF, $FILENAME);
my $count = 0;
while ($line = ) {
$count++ if ($line =~ m/$TEXT/);
}
print(STDERR "fn2 : Lines found : $count\n");
close(DF);
}
sub fn3 {
&mystat($FILENAME);
print(STDERR "Searching for $TEXT\t");
open(DF, $FILENAME);
my $count = 0;
while ($line = ) {
study($TEXT);
$count++ if ($line =~ m/$TEXT/);
}
print(STDERR "fn3 : Lines found : $count\n");
close(DF);
}
sub mystat {
local($filename) = @_;
print(STDERR "Filename : $filename\tSize : ",
(stat($filename))[7],
"\t");
}
####
Benchmark: timing 100 iterations of w/o study or /o, w/o study with /o, with study and /o, with study w/o /o...
w/o study or /o: 352 wallclock secs (304.41 usr + 8.55 sys = 312.96 CPU)
w/o study with /o: 388 wallclock secs (253.90 usr + 8.33 sys = 262.23 CPU)
with study and /o: 881 wallclock secs (507.50 usr + 8.17 sys = 515.67 CPU)
with study w/o /o: 823 wallclock secs (597.40 usr + 8.31 sys = 605.71 CPU)
####
#!/usr/local/bin/perl -w --
use Benchmark qw(timethese clearallcache);
$FILENAME = "datafile.txt";
$TEXT = "lease";
$COUNT = 100;
clearallcache;
&timethese($COUNT,
{ 'w/o study or /o' => \&fn1,
'w/o study with /o' => \&fn2,
'with study w/o /o' => \&fn3,
'with study and /o' => \&fn4 } );
sub fn1 {
&mystat($FILENAME);
print(STDERR "Searching for $TEXT\t");
open(DF, $FILENAME);
my $count = 0;
while ($line = ) {
$count++ if ($line =~ m/$TEXT/);
}
print(STDERR "fn1 : Lines found : $count\n");
close(DF);
}
sub fn2 {
&mystat($FILENAME);
print(STDERR "Searching for $TEXT\t");
open(DF, $FILENAME);
my $count = 0;
while ($line = ) {
$count++ if ($line =~ m/$TEXT/o);
}
print(STDERR "fn2 : Lines found : $count\n");
close(DF);
}
sub fn3 {
&mystat($FILENAME);
print(STDERR "Searching for $TEXT\t");
open(DF, $FILENAME);
my $count = 0;
while ($line = ) {
study($line);
$count++ if ($line =~ m/$TEXT/);
}
print(STDERR "fn3 : Lines found : $count\n");
close(DF);
}
sub fn4 {
&mystat($FILENAME);
print(STDERR "Searching for $TEXT\t");
open(DF, $FILENAME);
my $count = 0;
while ($line = ) {
study($line);
$count++ if ($line =~ m/$TEXT/o);
}
print(STDERR "fn4 : Lines found : $count\n");
close(DF);
}
sub mystat {
local($filename) = @_;
print(STDERR "Filename : $filename\tSize : ",
(stat($filename))[7],
"\t");
}