And the results:#!/usr/bin/perl -w use strict; use Benchmark; my $testlarge = "a " x 100000; my $testsmall = "a b c d e f"; timethese(-10,{ One => sub { my ($y) = (split(/\s+/,$testlarge))[0]; }, Two => sub { my ($y) = (split(/\s+/,$testsmall))[0]; }, Three => sub { $testsmall =~ /([^\s]*)\s+/; my $y = $1; }, Four => sub { $testlarge =~ /([^\s]*)\s+/; my $y = $1; }, });
Benchmark: running Four, One, Three, Two, each for at least 10 CPU sec +onds... Four: 10 wallclock secs ( 4.55 usr + 5.48 sys = 10.03 CPU) @ 43 +9.88/s (n=4412) One: 13 wallclock secs (12.83 usr + 0.07 sys = 12.90 CPU) @ 4 +.88/s (n=63) Three: 11 wallclock secs (10.62 usr + 0.00 sys = 10.62 CPU) @ 94 +938.32/s (n=1008245) Two: 10 wallclock secs (10.01 usr + 0.00 sys = 10.01 CPU) @ 67 +121.98/s (n=671891)
Enjoy!
Gryn
In reply to Re: is split optimized?
by gryng
in thread is split optimized?
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |