List::Util::XS вроде как находится в том же пакете, если банально глянуть на состав rpm, например.<div>Так что да, скорее всего, на большинстве машин используется реализация на Си.<br><br><div class="gmail_quote">8 июня 2011 г. 19:33 пользователь Aleksander Gorohovski <span dir="ltr"><<a href="mailto:angel@feht.dgtu.donetsk.ua">angel@feht.dgtu.donetsk.ua</a>></span> написал:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div><div></div><div class="h5">On Wed, 08 Jun 2011 16:02:29 +0300, Ruslan Zakirov wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
2011/6/8 Aleksander Gorohovski <<a href="mailto:angel@feht.dgtu.donetsk.ua" target="_blank">angel@feht.dgtu.donetsk.ua</a>>:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
comparing array sum with 10 element(s)<br>
             Rate for loop sum util<br>
for loop  627562/s       --     -83%<br>
sum util 3594095/s     473%       --<br>
<br>
comparing array sum with 100 element(s)<br>
             Rate for loop sum util<br>
for loop   96701/s       --     -92%<br>
sum util 1226353/s    1168%       --<br>
</blockquote>
<br>
Премного благодарен.<br>
:)<br>
Подскажите, а с помощью чего такую<br>
сравнительную статистику можно получить / воспроизвести?<br>
</blockquote>
<br>
use Benchmark qw/cmpthese/;<br>
<br>
use List::Util qw(sum);<br>
<br>
foreach my $up_to (1, 3, 10, 100) {<br>
    print "comparing array sum with $up_to element(s)\n";<br>
<br>
    my @a = (1 .. $up_to);<br>
    cmpthese(<br>
        -3,<br>
        {<br>
            'for loop' => sub { my $s = 0; $s+=$_ for @a; return $s },<br>
            'sum util' => sub { return sum(0, @a ) },<br>
        }<br>
    );<br>
}<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
и что означают отрицательные % ? --- это считается плохо/хорошо?<br>
</blockquote>
<br>
-75% - А медленне B на 75%. То есть A = B*(100-75)/100. Соответственно<br>
B быстрее А на 300% - B = A*(300/100+1), где A и B скорости<br>
алгоритмов.<br>
</blockquote>
<br></div></div>
Премного благодарен.<br>
<br>
Удивительный расклад :)<br>
Интересно за счёт чего ж<br>
получается такой прирост производительности?<br>
<br>
Неужто в List::Util подпрограммы встроены на C<div><div></div><div class="h5"><br>
?<br>
-- <br>
Moscow.pm mailing list<br>
<a href="mailto:moscow-pm@pm.org" target="_blank">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" target="_blank">http://moscow.pm.org</a><br>
</div></div></blockquote></div><br></div>