RFR: 8273100: Improve AbstractStringBuilder.append(String) when using CompactStrings [v3]

Claes Redestad redestad at openjdk.java.net
Mon Aug 30 12:01:29 UTC 2021


On Mon, 30 Aug 2021 11:49:49 GMT, Claes Redestad <redestad at openjdk.org> wrote:

>> Refactor to improve inlining, which helps some microbenchmarks exer StringBuilder.append(String)
>
> Claes Redestad has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Simplify and call getBytes(String, int, byte) when possible

Simplified further after realizing `putStringAt(int, String)` can use `String.getBytes(String, int, byte)`, improving performance for both modes:


# +CompactStrings
Benchmark                    Mode  Cnt    Score    Error  Units
StringBuilders.appendLoop16  avgt   15  681.778 ± 14.978  ns/op
StringBuilders.appendLoop8   avgt   15  358.008 ±  9.230  ns/op

# -CompactStrings
Benchmark                    Mode  Cnt    Score    Error  Units
StringBuilders.appendLoop16  avgt   15  664.591 ± 10.505  ns/op
StringBuilders.appendLoop8   avgt   15  351.175 ± 13.282  ns/op

-------------

PR: https://git.openjdk.java.net/jdk/pull/5291


More information about the core-libs-dev mailing list