<div dir="ltr"><div><div><b>Motivation:</b> Make another append instead of concat String inside of append parameter in StringBuilder class. To avoid an extra StringBuilder created for the purpose of concatenating. So it will save memory and will faster than concat String.</div>

<div>Doing a code to benchMark[1], the result is:</div></div><div><br></div><div><div>Benchmark                                                  Mode   Samples         Mean   Mean error    Units</div><div>m.StringBuilderConcatBenchMark.stringBuilder              thrpt        10  6317444.705   108673.584    ops/s</div>

<div>m.StringBuilderConcatBenchMark.stringBuilderWithConcat    thrpt        10  3354554.435    68353.924    ops/s</div></div><div><br></div><div>The webrev of all code is: <a href="https://dl.dropboxusercontent.com/u/16109193/open_jdk/string_builder_concat.zip ">https://dl.dropboxusercontent.com/u/16109193/open_jdk/string_builder_concat.zip </a></div>

<div><br></div><div>[1]</div><div><div><br></div><div>@State(Scope.Thread)</div><div>@OutputTimeUnit(TimeUnit.SECONDS)</div><div>public class StringBuilderConcatBenchMark {</div><div><br></div><div>    </div><div>        private static final String F = "!!!!";</div>

<div><span class="" style="white-space:pre">    </span>private static final String E = " running in Java ";</div><div><span class="" style="white-space:pre">     </span>private static final String D = " in the code ";</div>

<div><span class="" style="white-space:pre">    </span>private static final String C = " to try impact ";</div><div><span class="" style="white-space:pre">       </span>private static final String B = " with some text ";</div>

<div><span class="" style="white-space:pre">    </span>private static final String A = "Doing a test";</div><div><br></div><div><span class="" style="white-space:pre"> </span>@GenerateMicroBenchmark</div><div><span class="" style="white-space:pre">    </span>public void stringBuilder(BlackHole bh) {</div>

<div><span class="" style="white-space:pre">            </span>bh.consume(createBuilder(A, B, C, D, E, F));</div><div><span class="" style="white-space:pre">       </span>}</div><div><br></div><div><span class="" style="white-space:pre"> </span>@GenerateMicroBenchmark</div>

<div><span class="" style="white-space:pre">    </span>public void stringBuilderWithConcat(BlackHole bh) {</div><div><span class="" style="white-space:pre">                </span>bh.consume(createBuilderWithConcat(A, B, C, D, E, F));</div>

<div><span class="" style="white-space:pre">    </span>}</div><div><br></div><div><span class="" style="white-space:pre"> </span>private StringBuilder createBuilder(String... values) {</div><div><span class="" style="white-space:pre">            </span>StringBuilder text = new StringBuilder();</div>

<div><span class="" style="white-space:pre">            </span>text.append(values[0]).append(values[1])</div><div><span class="" style="white-space:pre">           </span>.append(values[2]).append(values[3])</div><div><span class="" style="white-space:pre">               </span>.append(values[4]).append(values[5]);</div>

<div><span class="" style="white-space:pre">            </span>return text;</div><div><span class="" style="white-space:pre">       </span>}</div><div><span class="" style="white-space:pre">  </span></div><div><span class="" style="white-space:pre">   </span>private StringBuilder createBuilderWithConcat(String... values) {</div>

<div><span class="" style="white-space:pre">            </span>StringBuilder text = new StringBuilder();</div><div><span class="" style="white-space:pre">          </span>text.append(values[0] + values[1])</div><div><span class="" style="white-space:pre">         </span>.append(values[2] + values[3])</div>

<div><span class="" style="white-space:pre">            </span>.append(values[4]+ values[5]);</div><div><span class="" style="white-space:pre">             </span>return text;</div><div><span class="" style="white-space:pre">       </span>}</div><div>

}<br clear="all"><div><br></div>-- <br><div dir="ltr"><div><div style="text-align:center"><div><span style="text-align:start">Otávio Gonçalves de Santana</span><div style="text-align:start"><div style="text-align:center">

<br><div style="text-align:left"><font face="Tahoma">blog:     </font><a href="http://otaviosantana.blogspot.com.br/" style="text-align:center" target="_blank">http://otaviosantana.blogspot.com.br/</a></div><div style="text-align:left">

twitter: <a href="http://twitter.com/otaviojava" target="_blank">http://twitter.com/otaviojava</a></div><div style="text-align:left">site:     <span style="text-align:center"><font color="#0000ee"><u><a href="http://about.me/otaviojava" target="_blank">http://about.me/otaviojava</a></u></font></span></div>

<div style="text-align:left">55 (11) 98255-3513</div></div></div></div></div></div></div>
</div><div style="text-align:-webkit-auto"><br></div></div>
</div>