<div dir="ltr"><div>I believe yes.</div><div><br></div><div>Using the -XX:+OptimizeStringConcat:</div><div>java -jar -XX:+OptimizeStringConcat target/microbenchmarks.jar ".*StringBuilderConcatBenchMark.*" -wi 10 -i 10 -f 1</div>
<div><br></div><div>The same thing happened:</div><div><br></div><div>Benchmark Mode Samples Mean Mean error Units</div><div>m.StringBuilderConcatBenchMark.stringBuilder thrpt 10 6316489.783 211751.479 ops/s</div>
<div>m.StringBuilderConcatBenchMark.stringBuilderWithConcat thrpt 10 3206244.215 60752.652 ops/s</div><div><br></div><div>So, can you review these changes, please.</div><div><a href="https://bugs.openjdk.java.net/browse/JDK-8055723">https://bugs.openjdk.java.net/browse/JDK-8055723</a></div>
<div><br></div><div><a href="http://cr.openjdk.java.net/~weijun/8055723/client/webrev.02/">http://cr.openjdk.java.net/~weijun/8055723/client/webrev.02/</a></div><div><a href="http://cr.openjdk.java.net/~weijun/8055723/core/webrev.02/">http://cr.openjdk.java.net/~weijun/8055723/core/webrev.02/</a></div>
<div><a href="http://cr.openjdk.java.net/~weijun/8055723/core/webrev.03/">http://cr.openjdk.java.net/~weijun/8055723/core/webrev.03/</a></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Aug 29, 2014 at 5:01 AM, Wang Weijun <span dir="ltr"><<a href="mailto:weijun.wang@oracle.com" target="_blank">weijun.wang@oracle.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">So it's not that the optimization fails but there is no optimization on them yet.<br>
<br>
I do see the .append("x") case will be easy to deal with, but it looks like historically javac has not been a place to do many optimizations. It mostly converts the java source to byte codes in a 1-to-1 mapping and let VM do whatever it wants (to optimize). When you talked about compiling multiple concatenation into using a single StringBuilder, it's more like choosing the correct implementation rather than an optimization.<br>
<br>
I don't expect to see big change on this in the near future, so shall we go on with the current enhancement?<br>
<br>
Thanks<br>
Max<br>
<div class="HOEnZb"><div class="h5"><br>
On Aug 29, 2014, at 2:17, Ulf Zibis <Ulf.Zibis@CoSoCo.de> wrote:<br>
<br>
> I mean:<br>
> It does not output byte code that only uses a single char array to compose the entire String in question.<br>
> With "optimization fails", I also mean, there is used an additional "StringComposer" e.g. another StringBuilder or a StringJoiner in addition to the 1st StringBuilder.<br>
><br>
> -Ulf<br>
><br>
> Am 27.08.2014 um 14:02 schrieb Pavel Rappo:<br>
>> Could you please explain what you mean by "javac optimization fails" here?<br>
>><br>
>> -Pavel<br>
>><br>
>> On 27 Aug 2014, at 10:41, Ulf Zibis <Ulf.Zibis@CoSoCo.de> wrote:<br>
>><br>
>>> 4.) Now we see, that javac optimization fails again if StringBuilder, concatenation, toString(), append(String), append(Collection) etc. and StringJoiner use is mixed.<br>
>><br>
><br>
<br>
</div></div></blockquote></div><br><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>