in reply to Re: Re: Pairing values from two arrays
in thread Pairing values from two arrays
Is it really more efficient?I got the impression that 'efficient' was more to do with line consumption than CPU cycles, and even if it is do with CPU cycles, map should be just as fast as a foreach if not faster in this situation. Let's see ...
Ever so slightly faster, but essentially negligble. As always, take with a grain of salt. But I'd say that's about as quick as your going to get without going down the dark path of optimization.use strict; use Benchmark 'cmpthese'; my @y_vals = my @x_vals = 1 .. 50; cmpthese(-10, { map => sub { return map "($x_vals[$_],$y_vals[$_])", 0 .. $#x_vals }, for => sub { my @ret; $ret[$_] = "($x_vals[$_],$y_vals[$_])" for 0 .. $#x_vals; return @ret; }, }); __output__ Benchmark: running for, map, each for at least 10 CPU seconds... for: 11 wallclock secs (10.19 usr + 0.00 sys = 10.19 CPU) @ 75 +36.80/s (n=76800) map: 11 wallclock secs (10.34 usr + 0.01 sys = 10.35 CPU) @ 77 +68.31/s (n=80402) Rate for map for 7537/s -- -3% map 7768/s 3% --
_________
broquaint
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Re: Re: Re: Pairing values from two arrays
by zby (Vicar) on May 13, 2003 at 10:28 UTC | |
by broquaint (Abbot) on May 13, 2003 at 10:32 UTC |