<div dir="ltr">Интересно, получается конкатенировать более чем в 2 раза быстрее последовательно (selfcat), а не разом ($z = $x . $y);<div><br></div><div>Warstone, я писал про использование сабстр с параметром replace (4ый). А ты почему-то используешь в примерах 3х-арный вариант.</div></div><div class="gmail_extra"><br><div class="gmail_quote">2015-03-10 19:48 GMT+03:00 PEF Secure <span dir="ltr"><<a href="mailto:pef-secure@yandex.ru" target="_blank">pef-secure@yandex.ru</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">On Tuesday, March 10, 2015 17:03:36 Andrey Kovbovich wrote:<br>
> Кто-нибудь знает, за счет чего substr быстрее?<br>
><br>
> $ perl -MBenchmark=cmpthese<br>
> -wE'my$x="0"x1_000_000;my$b="1"x100_000;cmpthese(10000,{concat=>sub{my$z=$x.<br>
> $b;},substr=>sub{my$z="";substr$z,(length$z),(length$x),$x;substr$z,(length$<br>
> z),(length$b),$b;},join=>sub{my$z=join("",$x,$b)}});' Rate   join concat<br>
> substr<br>
> join   3922/s     --    -0%   -58%<br>
> concat 3937/s     0%     --   -57%<br>
> substr 9259/s   136%   135%     --<br>
<br>
</div></div>selfcat => sub {my$z=$x; $z.=$b;}<br>
<br>
вот примерный аналог твоего substr<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
PEF Developer<br>
</font></span><div class="HOEnZb"><div class="h5">--<br>
Moscow.pm mailing list<br>
<a href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" target="_blank">http://moscow.pm.org</a><br>
</div></div></blockquote></div><br></div>