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

Dmitry Smal mialinx на gmail.com
Вт Мар 10 10:20:02 PDT 2015


А что у вас за задача такая ?
Есть ооочень много конкатенаций подряд идет  (в цикле например) - то 
нужно оптимизировать сам алгоритм склейки.
Если не нагружен - оставить более читаемый вариант =)

On 03/10/2015 07:59 PM, Andrey Kovbovich wrote:
> Интересно, получается конкатенировать более чем в 2 раза быстрее 
> последовательно (selfcat), а не разом ($z = $x . $y);
>
> Warstone, я писал про использование сабстр с параметром replace (4ый). 
> А ты почему-то используешь в примерах 3х-арный вариант.
>
> 2015-03-10 19:48 GMT+03:00 PEF Secure <pef-secure на yandex.ru 
> <mailto: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 <mailto:moscow-pm на pm.org> | http://moscow.pm.org
>
>
>
>

----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20150310/93b12a66/attachment.html>


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