[Cascavel-pm] Somar elementos numericos de um array

Igor Sutton Lopes igor.sutton em gmail.com
Segunda Abril 9 08:58:52 PDT 2007


On 2007/04/09, at 16:42, Patty Silva wrote:

> Qual seria o + eficiente?
>

Talvez você não tenha lido minha resposta antes, mas List::Util sum()  
é mais eficiente pois utiliza XS.

<code>
use strict;
use warnings;

use List::Util qw(sum);
use Benchmark qw(:all);

my @numbers = ( 1 .. 1_000 );

cmpthese(
     -3,
     {
         'map' => sub {
             my $result;
             map { $result += $_ } @numbers;
         },
         'for' => sub {
             my $result;
             $result += $_ for @numbers;
         },
         'sum' => sub {
             my $result = sum(@numbers);
         },
     }
);
</code>

Resultado:

         Rate   map   for   sum
map   5269/s    --  -12%  -97%
for   5986/s   14%    --  -96%
sum 153292/s 2809% 2461%    --

--
Igor Sutton
igor.sutton em gmail.com



-------------- Próxima Parte ----------
Um anexo não texto foi limpo...
Nome  : PGP.sig
Tipo  : application/pgp-signature
Tam   : 186 bytes
Descr.: This is a digitally signed message part
Url   : http://mail.pm.org/pipermail/cascavel-pm/attachments/20070409/874dde4b/attachment.bin 


Mais detalhes sobre a lista de discussão Cascavel-pm