I get slightly different results:
YMMV :-)$ perl -le' open D, q[/usr/share/dict/words] or die $!; my $string = join "|", <D>; use Benchmark qw/cmpthese/; cmpthese -20, { orig => sub { my @arr = split /\|/, $string; my @arr1 = grep { /oug/ } @arr; return @arr1; }, Buk1 => sub { my @arr1 = grep { /oug/ } split /\|/, $string; return @arr1; }, jwkrahn => sub { my @arr1 = grep /oug/, split /\|/, $string; return @arr1; }, Buk2 => sub { my @arr1 = $string =~ /(?:^|\|)(.*?oug.*?)(?=\||$)/g; return @arr1; }, JOOST => sub { my @arr1 = $string =~ /(?:^|\|)([^|]*?oug[^|]*?)(?=\||$)/g; return @arr1; }, }; ' Rate JOOST Buk2 orig Buk1 jwkrahn JOOST 4.37/s -- -10% -13% -38% -67% Buk2 4.87/s 11% -- -4% -31% -63% orig 5.05/s 15% 4% -- -28% -62% Buk1 7.05/s 61% 45% 40% -- -47% jwkrahn 13.2/s 202% 171% 162% 87% --
In reply to Re^4: Performance optimization question
by jwkrahn
in thread Performance optimization question
by vit
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |