[Moscow.pm] map vs foreach

Victor Efimov victor на vsespb.ru
Вт Ноя 24 12:53:52 PST 2015


24 ноября 2015 г., 23:45 пользователь Ilya Chesnokov
<chesnokov.ilya на gmail.com> написал:
> 24 ноября 2015 г., 22:30 пользователь Mescalito
> <mescalito.ua на gmail.com> написал:
>> Приветствую, коллеги!
>>
>> Есть  вполне опредленная задача  - взять массив произвольного размера и
>> что-то однотипное сделать с его элементами.
>> Можно это сделать вида:
>>
>> foreach(@array) {
>>    do_something($_)
>> }
>>
>> а можно
>>
>> map { do_something($_) } @array
>>
>> Вторая запись мне нравится больше, т.к.  она более лаконична и более
>> очевидно возвращается массив измененных элементов.
>>
>> Вопрос в том,  какие есть подводные камни  второго метода и какой из методов
>> быстрее
>
> 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 }, map2 => sub { my $i=0; map { $i += $_; } 1..1000; 1 }
} ) '
        Rate  map map2  for
map  18904/s   --  -8% -11%
map2 20534/s   9%   --  -3%
for  21186/s  12%   3%   --



>> и оптимальнее по памяти (обрабатывается большое количество текста в
>> каждом элементе)
>>
>> Все что я нашел в выдаче гугла и в монастыре - суть набор холиворов.
>> Может кто-то здесь обладает сакральным знанием?
>>
>>
>> --
>> WBR,
>> Mescalito.
>>
>> mailto: mescalito.ua на gmail.com
>> skype:  mescalito_genesys
>> phone: +38 067 974 7812
>> phone: +7 915 382 2412
>>
>> --
>> Moscow.pm mailing list
>> moscow-pm на pm.org | http://moscow.pm.org
>>
>
>
>
> --
> Best regards,
> Ilya Chesnokov
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org


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