25 ноября 2015 г., 12:39 пользователь Ivan Petrov
<[email protected]> написал:
>
>> 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.
> в реальной жизни этой разницы нет.
Возможно, проблема в turbo-boost.
При правильном раскладе, конечно, надо бенчмаркать конкретную
программу на конкретной машине, и лучше через Dumbbench.
В целом я не претендовал на 100% правильность бенчмарка - мой посыл
был в том, что все можно замерить, а не гадать по выдаче гугла.
>
> и на моей машине map немного побыстрее
> --
> Moscow.pm mailing list
> [email protected] | http://moscow.pm.org
--
Best regards,
Ilya Chesnokov
--
Moscow.pm mailing list
[email protected] | http://moscow.pm.org