RFR: 8273100: Improve AbstractStringBuilder.append(String) when using CompactStrings
Claes Redestad
redestad at openjdk.java.net
Sat Aug 28 14:28:22 UTC 2021
On Sat, 28 Aug 2021 13:21:24 GMT, Claes Redestad <redestad at openjdk.org> wrote:
> Refactor to improve inlining, which helps some microbenchmarks exer StringBuilder.append(String)
Microbenchmark results:
Baseline
Benchmark Mode Cnt Score Error Units
# +CompactStrings
StringBuilders.appendLoop16 avgt 25 749.861 ± 6.717 ns/op
StringBuilders.appendLoop8 avgt 25 382.491 ± 4.603 ns/op
# -CompactStrings
StringBuilders.appendLoop16 avgt 25 716.850 ± 7.857 ns/op
StringBuilders.appendLoop8 avgt 25 374.279 ± 5.793 ns/op
# -Xint +CompactStrings:
StringBuilders.appendLoop16 avgt 5 23479.176 ± 135.382 ns/op
StringBuilders.appendLoop8 avgt 5 12075.346 ± 80.429 ns/op
# -Xint -CompactStrings:
Benchmark Mode Cnt Score Error Units
StringBuilders.appendLoop16 avgt 5 22166.303 ± 295.892 ns/op
StringBuilders.appendLoop8 avgt 5 11480.187 ± 710.690 ns/op
Patched:
Benchmark Mode Cnt Score Error Units
# +CompactStrings
StringBuilders.appendLoop16 avgt 25 724.803 ± 9.613 ns/op
StringBuilders.appendLoop8 avgt 25 374.400 ± 6.368 ns/op
# -CompactStrings
StringBuilders.appendLoop16 avgt 25 715.314 ± 11.787 ns/op
StringBuilders.appendLoop8 avgt 25 377.415 ± 6.089 ns/op
# -Xint +CompactStrings
StringBuilders.appendLoop16 avgt 5 19794.280 ± 227.033 ns/op
StringBuilders.appendLoop8 avgt 5 10200.439 ± 221.899 ns/op
# -Xint -CompactStrings
StringBuilders.appendLoop16 avgt 5 16855.894 ± 127.499 ns/op
StringBuilders.appendLoop8 avgt 5 9004.396 ± 111.427 ns/op
-------------
PR: https://git.openjdk.java.net/jdk/pull/5291
More information about the core-libs-dev
mailing list