[Moscow.pm] sum of array
Aleksander Gorohovski
angel на feht.dgtu.donetsk.ua
Ср Июн 8 08:33:55 PDT 2011
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