Hi Jim,

thanks for reviewing, and it's fair that we seek to improve comments and
readability of this code while we're at it:

http://cr.openjdk.java.net/~redestad/8222484/open.01/

Also fixed so we're starting with the value of initialCoder() rather
than 0L for documentation purposes. Using initialCoder() is only
necessary when all operands to a concat expression are primitives,
since any Object argument will result in correct mixing in of the UTF16
bit if CompactStrings is disabled. Perhaps there's a small optimization
opportunity lurking here..

Thanks!

/Claes

On 2019-04-15 14:37, Jim Laskey wrote:
The StringConcatHelper::valueOf really should be StringConcatHelper::stringOf to clarify the result. Use here is unlike String::valueOf context where the result is logically String.

StringConcatHelper::mix comments really should describe the encoding. If does a lot of handwaving re checking for overflow and mixing coder.

Cheers,

-- Jim







On Apr 15, 2019, at 7:49 AM, Claes Redestad <claes.redes...@oracle.com <mailto:claes.redes...@oracle.com>> wrote:

Hi,

please review this enhancement to specialize a few simple and common
String concatenation patterns in the default strategy.

Bug: https://bugs.openjdk.java.net/browse/JDK-8222484
Webrev: http://cr.openjdk.java.net/~redestad/8222484/open.00/

This reduces first-time bootstrap times for the targeted patterns from
~20ms to be lost in the noise on my machine (so ~0.5ms), while being
peak performance neutral and not regressing bootstrap characteristics on
more complex patterns.

This also consolidates the String::concat method to reuse the optimized
method in StringConcatHelper, which speeds up that method by ~1.4x for a
few sampled inputs.

Testing: tier1-3

Thanks!

/Claes

Reply via email to