in reply to regex internals: quantifiers vs global match
Results (from windows)#!/usr/bin/perl use strict; use warnings; use Benchmark; $| = 1; my $clean="kljansdljzxnkxnlkxjnxlkjnxlkxxxlkjnlkjnlkxjnkxjnlkxjnlxkjnl +kxxluhasiuuhxkxhkxhxxxxlkjsndifnhskxhkxhx"; timethese ( 10000000, { 'with plus' => sub { &plus}, 'without plus' => sub { &no_plus }, } ); sub no_plus { my $temp=$clean; $temp=~s/x//g; } sub plus { my $temp=$clean; $temp=~s/x+//g; }
Results (from Linux)C:\Documents and Settings\Kevin\My Documents\scripts>test.pl Benchmark: timing 10000000 iterations of with plus, without plus... with plus: 75 wallclock secs (72.48 usr + 0.01 sys = 72.49 CPU) @ 13 +7959.58/s (n=10000000) without plus: 86 wallclock secs (84.41 usr + 0.01 sys = 84.42 CPU) @ +118453.94/s (n=10000000)
kevin@kevin-linux:~> perl test.pl Benchmark: timing 10000000 iterations of with plus, without plus... with plus: 124 wallclock secs (123.54 usr + 0.00 sys = 123.54 CPU) @ + 80945.44/s (n=10000000) without plus: 146 wallclock secs (146.38 usr + 0.00 sys = 146.38 CPU) + @ 68315.34/s (n=10000000)
my $a='62696c6c77667269656e6440676d61696c2e636f6d'; while ($a=~m/(^.{2})/s) {print unpack('A',pack('H*',"$1"));$a=~s/^.{2}//s;}
|
|---|