Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

Re: Can you write a faster code to perform this task?

by Anonymous Monk
on Sep 28, 2014 at 23:14 UTC ( [id://1102301]=note: print w/replies, xml ) Need Help??


in reply to Can you write a faster code to perform this task?

Benchmarked a few solutions:

use Benchmark qw(:all); my $str = 'iiiiiiiiMMMMMMMMMMMooooooooooooMMMMMMMMMMiiiiiMMMMMMMMoooo' +; my $these = { 'count' => sub { my $count = 0; $count++ while $str =~ /(M+)/g; $count; }, 'regex' => sub { my $count = () = $str =~ /(M+)/g; }, 'split' => sub { $#{[split /M+/, $str, -1]}; }, }; printf "%-10s %d\n", $_, $these->{$_}->() for sort keys %$these; print "\n"; cmpthese(-1, $these);

Got these:

count 3 regex 3 split 3 Rate split regex count split 335814/s -- -3% -30% regex 345739/s 3% -- -27% count 476625/s 42% 38% --

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others rifling through the Monastery: (5)
As of 2024-04-24 17:27 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found