<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">Без копирования - никак, если вам нужно
      собрать в один буфер, а приходят из разных мест.<br>
      Если заранее известен размер (либо есть оценка) - то можно
      попробовать выделить заранее все необходимое место, но это XSкой.<br>
      <br>
      On 03/10/2015 08:27 PM, Andrey Kovbovich wrote:<br>
    </div>
    <blockquote
cite="mid:CAPTWO-bkR4sQ3SO6EBGYPMUTLbjfUemoME+QLYo3cZN+etkxYg@mail.gmail.com"
      type="cite">
      <div dir="ltr">Задача - приходят от I/O куски данных, и нужно их
        буферизировать перед обработкой. Вопрос как это сделать
        эффективно (идеально - без копирования).</div>
      <div class="gmail_extra"><br>
        <div class="gmail_quote">10 марта 2015 г., 20:20 пользователь
          Dmitry Smal <span dir="ltr"><<a moz-do-not-send="true"
              href="mailto:mialinx@gmail.com" target="_blank">mialinx@gmail.com</a>></span>
          написал:<br>
          <blockquote class="gmail_quote" style="margin:0 0 0
            .8ex;border-left:1px #ccc solid;padding-left:1ex">
            <div bgcolor="#FFFFFF" text="#000000">
              <div>А что у вас за задача такая ?<br>
                Есть ооочень много конкатенаций подряд идет  (в цикле
                например) - то нужно оптимизировать сам алгоритм
                склейки.<br>
                Если не нагружен - оставить более читаемый вариант =)
                <div>
                  <div class="h5"><br>
                    <br>
                    On 03/10/2015 07:59 PM, Andrey Kovbovich wrote:<br>
                  </div>
                </div>
              </div>
              <div>
                <div class="h5">
                  <blockquote type="cite">
                    <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
                            moz-do-not-send="true"
                            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>
                            <div>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><font color="#888888"><br>
                              --<br>
                              PEF Developer<br>
                            </font></span>
                          <div>
                            <div>--<br>
                              Moscow.pm mailing list<br>
                              <a moz-do-not-send="true"
                                href="mailto:moscow-pm@pm.org"
                                target="_blank">moscow-pm@pm.org</a> | <a
                                moz-do-not-send="true"
                                href="http://moscow.pm.org"
                                target="_blank">http://moscow.pm.org</a><br>
                            </div>
                          </div>
                        </blockquote>
                      </div>
                      <br>
                    </div>
                    <br>
                    <fieldset></fieldset>
                    <br>
                  </blockquote>
                  <br>
                </div>
              </div>
            </div>
            <br>
            --<br>
            Moscow.pm mailing list<br>
            <a moz-do-not-send="true" href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a>
            | <a moz-do-not-send="true" href="http://moscow.pm.org"
              target="_blank">http://moscow.pm.org</a><br>
            <br>
          </blockquote>
        </div>
        <br>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
    </blockquote>
    <br>
  </body>
</html>