[Moscow.pm] Быстрая конкатенация строк

Andrey Kovbovich akovbovich на gmail.com
Вт Мар 10 09:59:01 PDT 2015


Интересно, получается конкатенировать более чем в 2 раза быстрее
последовательно (selfcat), а не разом ($z = $x . $y);

Warstone, я писал про использование сабстр с параметром replace (4ый). А ты
почему-то используешь в примерах 3х-арный вариант.

2015-03-10 19:48 GMT+03:00 PEF Secure <pef-secure на yandex.ru>:

> On Tuesday, March 10, 2015 17:03:36 Andrey Kovbovich wrote:
> > Кто-нибудь знает, за счет чего substr быстрее?
> >
> > $ perl -MBenchmark=cmpthese
> >
> -wE'my$x="0"x1_000_000;my$b="1"x100_000;cmpthese(10000,{concat=>sub{my$z=$x.
> >
> $b;},substr=>sub{my$z="";substr$z,(length$z),(length$x),$x;substr$z,(length$
> > z),(length$b),$b;},join=>sub{my$z=join("",$x,$b)}});' Rate   join concat
> > substr
> > join   3922/s     --    -0%   -58%
> > concat 3937/s     0%     --   -57%
> > substr 9259/s   136%   135%     --
>
> selfcat => sub {my$z=$x; $z.=$b;}
>
> вот примерный аналог твоего substr
>
> --
> PEF Developer
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20150310/d70fa91b/attachment.html>


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