[Moscow.pm] sum of array

Akzhan Abdulin akzhan.abdulin на gmail.com
Ср Июн 8 08:46:22 PDT 2011


Но вообще еще более удивительно делать выбор на основании производительности
;)

Для меня основным критерием является читаемость кода по прошествии полугода.

Если код читаем, значит, удобен в поддержке. Это перекрывает большинство
иных преимуществ.

8 июня 2011 г. 19:44 пользователь Akzhan Abdulin
<akzhan.abdulin на gmail.com>написал:

> List::Util::XS вроде как находится в том же пакете, если банально глянуть
> на состав rpm, например.
> Так что да, скорее всего, на большинстве машин используется реализация на
> Си.
>
> 8 июня 2011 г. 19:33 пользователь Aleksander Gorohovski <
> angel на feht.dgtu.donetsk.ua> написал:
>
> On Wed, 08 Jun 2011 16:02:29 +0300, Ruslan Zakirov wrote:
>>
>>  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 скорости
>>> алгоритмов.
>>>
>>
>> Премного благодарен.
>>
>> Удивительный расклад :)
>> Интересно за счёт чего ж
>> получается такой прирост производительности?
>>
>> Неужто в List::Util подпрограммы встроены на C
>>
>> ?
>> --
>> Moscow.pm mailing list
>> moscow-pm на pm.org | http://moscow.pm.org
>>
>
>
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20110608/f05f8f7c/attachment.html>


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