[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