#!/usr/bin/perl
use strict;
use warnings;
use Benchmark qw( cmpthese );
my $count = shift || 100000;
my @test_array = (0 .. 99);
sub map_bench
{
my $result = join(', ', map { '?' } @test_array);
}
sub x_bench
{
my $result = '?, ' x @test_array;
}
cmpthese($count, {
map => \&map_bench,
x => \&x_bench,
});
__END__
Benchmark: timing 100000 iterations of map, x...
map: 28 wallclock secs (27.94 usr + 0.00 sys = 27.94 CPU) @ 3578.97/s (n=100000)
x: 1 wallclock secs ( 0.77 usr + 0.00 sys = 0.77 CPU) @ 129533.68/s (n=100000)
Rate map x
map 3579/s -- -97%
x 129534/s 3519% --
####
my $result = ('?, ' x $#test_array) . '?'
####
my $result = join(', ', map { '?' } @test_array);