Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

Re: regex internals: quantifiers vs global match

by K_M_McMahon (Hermit)
on May 16, 2005 at 04:08 UTC ( [id://457357]=note: print w/replies, xml ) Need Help??


in reply to regex internals: quantifiers vs global match

UPDATE: samtregar beat me to the punch. But, based on your question, I think a random string containing X's and non-x characters is a more valid test for benchmarking....Just my humble opinion.

Your question was interesting so I ran a quick benchmark..... Both on my linux box and a windows machine. both showed that the regex with the plus was a little faster. For the reasons pointed out by kvale.
Benchmark code:
#!/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 windows)
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)
Results (from Linux)
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)


-Kevin
my $a='62696c6c77667269656e6440676d61696c2e636f6d'; while ($a=~m/(^.{2})/s) {print unpack('A',pack('H*',"$1"));$a=~s/^.{2}//s;}

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://457357]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others meditating upon the Monastery: (5)
As of 2025-01-13 13:12 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Which URL do you most often use to access this site?












    Results (31 votes). Check out past polls.