update:
I seem to be getting different times on each run (and different winners too), but over the whole split does appear to be the winner. I've changed the regex to a more condensed version.

#!/usr/bin/perl -w use Benchmark 'timethese'; use strict; print "split: ", use_split(), "\n"; print "regex: ", use_regex(), "\n"; sub use_split { $_ = " one two three four five six"; split; # See Jouke's post (this may be faster). This is dep +recated though. return $_[3]; } sub use_regex { $_ = " one two three four five six"; s/^\s+//; m/^(?:[^\s]+\s+){3}([^\s]+)/; return $1; } timethese(-10, { regex => \&use_regex, split => \&use_split }); timethese(-50, { regex => \&use_regex, split => \&use_split }); timethese(-100, { regex => \&use_regex, split => \&use_split });

The results (updated to 10, 50 and 100) (...drumroll please...):
Benchmark: running regex, split, each for at least 10 CPU seconds... regex: 12 wallclock secs (10.64 usr + 0.00 sys = 10.64 CPU) @ 40 +522.18/s (n=431156) split: 10 wallclock secs (10.02 usr + 0.00 sys = 10.02 CPU) @ 37 +290.82/s (n=373654)
and:
Benchmark: running regex, split, each for at least 50 CPU seconds... regex: 68 wallclock secs (54.11 usr + 0.13 sys = 54.24 CPU) @ 40 +957.93/s (n=2221558) split: 56 wallclock secs (49.95 usr + 0.05 sys = 50.00 CPU) @ 38 +128.48/s (n=1906424)
and
Benchmark: running regex, split, each for at least 100 CPU seconds... regex: 136 wallclock secs (110.38 usr + 0.32 sys = 110.70 CPU) @ + 40548.93/s (n=4488766) split: 112 wallclock secs (100.00 usr + 0.02 sys = 100.02 CPU) @ + 38995.86/s (n=3900366)

[~]


In reply to (ar0n: split/regex benchmark) RE (2): novice by ar0n
in thread novice by mrt

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.