Yes here is the benchmark that I ran. Fixed string grep is crazy fast. This is run on a 500MB file.
#!/usr/bin/perl use strict; use Benchmark qw(cmpthese); my $fileName = "data2"; my $string = "test"; print "case1 finds ", &case1, " matches \n"; print "case2 finds ", &case2, " matches \n"; cmpthese (10, { case0 => sub {&case0}, case1 => sub {&case1}, case2 => sub {&case2}, }, ); sub case0 { open(my $file, '<', "$fileName") or die $!; while (<$file>) { } } sub case1 { open(my $file, '<', "$fileName") or die $!; my $matchCount = 0; while (<$file>) { $matchCount++ if ($_ =~ /$string/o); } return $matchCount; } sub case2 { my $matchCount = `grep -c -F "$string" $fileName`; chomp $matchCount; return $matchCount; } case1 finds 354 matches case2 finds 354 matches s/iter case1 emptyLoop case2 case1 8.08 -- -36% -92% case0 5.16 57% -- -88% case2 0.632 1178% 716% --
In reply to Re^2: search array for closest lower and higher number from another array
by bigbot
in thread search array for closest lower and higher number from another array
by bigbot
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |