[Moscow.pm] map vs foreach

Ivan Petrov i.petro.77.00 на gmail.com
Ср Ноя 25 01:39:34 PST 2015


> https://gist.github.com/ichesnokov/7feea4c15a868d48e5a0

бенчмарки такие бенчмарки

вам же перл говорит (или не говорит?) что мало итераций чтобы выдать
достоверный результат

вот умножил итераций в Вашем же сравнении на десять и получил совсем другой
результат:

$ perl -MBenchmark=cmpthese -E 'cmpthese(100000, { for => sub { my $i = 0; for (1..1000) { $i += $_; } }, map => sub { my $i=0; map { $i += $_; } 1..1000 }, foreach => sub { my $i=0; foreach (1..1000) { $i+=$_; } }, postfix_for => sub { my $i=0; $i+=$_ for 1..1000; }, postfix_foreach => sub { my $i = 0; $i += $_ foreach 1..1000; }   });'              
                   Rate  foreach       for       map postfix_for postfix_foreach
foreach         20790/s       --       -1%       -8%        -12%            -13%
for             20964/s       1%        --       -7%        -11%            -12%
map             22624/s       9%        8%        --         -4%             -5%
postfix_for     23641/s      14%       13%        4%          --             -1%
postfix_foreach 23810/s      15%       14%        5%          1%              --


в вашем бенчмарке должна быть удивительной разница for и foreach.
в реальной жизни этой разницы нет.


и на моей машине map немного побыстрее


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