Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked
 
PerlMonks  

Re^3: Using the Substr

by johngg (Canon)
on Mar 05, 2014 at 11:23 UTC ( [id://1077064]=note: print w/replies, xml ) Need Help??


in reply to Re^2: Using the Substr
in thread Using the Substr

I wondered if index and substr would be any quicker but, no, it came in a bit behind &_split_LIMIT.

use strict; use warnings; use Benchmark qw{ cmpthese }; my $string = q{1:13:1:6:5854:0x00E37F06:0x00D1314C}; my $result; sub _index { my $pos3 = -1; $pos3 = index $string, q{:}, $pos3 + 1 for 1 .. 3; $result = substr $string, 0, $pos3; } sub _split { $result = join ':', (split /:/, $string)[0 .. 2]; } sub _split_LIMIT { $result = join ':', (split /:/, $string, 4)[0 .. 2]; } sub _regex { ($result) = $string =~ m{ \A \d+ : \d+ : \d+ }xmsg; } cmpthese( -5, { _index => \&_index, _split => \&_split, _split_LIMIT => \&_split_LIMIT, _regex => \&_regex, } );
Rate _split _index _split_LIMIT _r +egex _split 657900/s -- -26% -31% +-38% _index 890097/s 35% -- -7% +-17% _split_LIMIT 952857/s 45% 7% -- +-11% _regex 1066336/s 62% 20% 12% + --

I hope this is of interest.

Cheers,

JohnGG

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others avoiding work at the Monastery: (3)
As of 2024-04-16 19:41 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found