in reply to Re: Re: lc entire contents of array?
in thread lc entire contents of array?

What counts as newer versions? I find that map whups for's sorry ass in benchmarks under 5.8.0 and 5.8.2.

Eh?

use Benchmark; @a = qw(the quick brown fox jumps over the lazy dog); timethese(1000000, { 'for' => '$_ = lc for @a', 'map' => '@a = map lc, @a', }); $ perl580 /tmp/p Benchmark: timing 1000000 iterations of for, map... for: 20 wallclock secs (19.28 usr + 0.02 sys = 19.30 CPU) @ 51 +813.47/s (n=1000000) map: 47 wallclock secs (47.85 usr + 0.02 sys = 47.87 CPU) @ 20 +889.91/s (n=1000000)

Replies are listed 'Best First'.
Re: Re: Re: Re: lc entire contents of array?
by Willard B. Trophy (Hermit) on Mar 31, 2004 at 15:30 UTC
    $ ./dave_the_m.pl Benchmark: timing 1000000 iterations of for, map... for: 2 wallclock secs ( 2.03 usr + 0.00 sys = 2.03 CPU) @ 49 +2610.84/s (n=1000000) map: 1 wallclock secs ( 1.12 usr + 0.00 sys = 1.12 CPU) @ 89 +2857.14/s (n=1000000)

    That was Perl 5.8.0 on a P3-600. I got similar results on a Sparc box with 5.8.2.

    I rather think we might be benchmarking other things than just the map and the for. For instance, lcing an array with 10,000 elements doesn't seem to take appreciably longer than one with 1,000 elements.

    Anyway, wiser monks have already pointed out that legibility should come first. Optimisation is a hardware problem.

    --
    bowling trophy thieves, die!