#!/usr/bin/perl -w
use strict;
use Benchmark qw(timethese);
my @data = ("sponge\n","\n",
"wibble\n","boing\n",
"spam\n","\n"," spud\n");
my $nsre = qr/\S/;
my $isre = qr/^\s+$/;
timethese(1E6, {
'nospace' => sub { grep {/$nsre/} @data; },
'isspace' => sub { grep {!/$isre/} @data; }})
Resulting in:
Benchmark: timing 1000000 iterations of isspace, nospace...
isspace: 67 wallclock secs (56.34 usr + 0.15 sys = 56.49 CPU) @ 17
+702.25/s (n=1000000)
nospace: 63 wallclock secs (49.19 usr + 0.26 sys = 49.45 CPU) @ 20
+222.45/s (n=1000000)
Unless my dataset is unfair.
--
¤ Steve Marvell |