[Moscow.pm] sum of array

Ruslan Zakirov ruz на bestpractical.com
Ср Июн 8 06:02:29 PDT 2011


2011/6/8 Aleksander Gorohovski <angel на feht.dgtu.donetsk.ua>:
>> comparing array sum with 10 element(s)
>>              Rate for loop sum util
>> for loop  627562/s       --     -83%
>> sum util 3594095/s     473%       --
>>
>> comparing array sum with 100 element(s)
>>              Rate for loop sum util
>> for loop   96701/s       --     -92%
>> sum util 1226353/s    1168%       --
>
> Премного благодарен.
> :)
> Подскажите, а с помощью чего такую
> сравнительную статистику можно получить / воспроизвести?

use Benchmark qw/cmpthese/;

use List::Util qw(sum);

foreach my $up_to (1, 3, 10, 100) {
    print "comparing array sum with $up_to element(s)\n";

    my @a = (1 .. $up_to);
    cmpthese(
        -3,
        {
            'for loop' => sub { my $s = 0; $s+=$_ for @a; return $s },
            'sum util' => sub { return sum(0, @a ) },
        }
    );
}

> и что означают отрицательные % ? --- это считается плохо/хорошо?

-75% - А медленне B на 75%. То есть A = B*(100-75)/100. Соответственно
B быстрее А на 300% - B = A*(300/100+1), где A и B скорости
алгоритмов.

-- 
Best regards, Ruslan.


Подробная информация о списке рассылки Moscow-pm