On Mon, 21 Apr 2025 07:00:36 GMT, Shaojin Wen <s...@openjdk.org> wrote:
> In BufferedReader.readLine and other similar scenarios, we need to use > StringBuilder.append(char[]) to build the string. > > For these scenarios, we can use the intrinsic method StringUTF16.compress and > Unsafe.copyMemory instead of the character copy of the char-by-char loop to > improve the speed. Below are the performance numbers on a MacBookPro M1 Max, showing a 112% speed increase when coder = LATIN1 and a 44.19% speed increase when coder = UTF16. # shell git remote add wenshao g...@github.com:wenshao/jdk.git git fetch wenshao # basline git clone ee356d3af177877e2702db08a3b55d170a7e454c make test TEST="micro:java.lang.StringBuilders.appendWithCharArray" # current git clone cd5137097b4a7be370cf60df9aa5000203ea99c0 make test TEST="micro:java.lang.StringBuilders.appendWithCharArray" # Performance Numbrers -Benchmark Mode Cnt Score Error Units (baseline cd5137097b4) -StringBuilders.appendWithCharArrayLatin1 avgt 15 33.039 ± 0.059 ns/op -StringBuilders.appendWithCharArrayUTF16 avgt 15 19.977 ± 0.054 ns/op +Benchmark Mode Cnt Score Error Units (current ee356d3af17) +StringBuilders.appendWithCharArrayLatin1 avgt 15 15.533 ± 0.039 ns/op +112.70% +StringBuilders.appendWithCharArrayUTF16 avgt 15 13.868 ± 0.053 ns/op +44.19% ------------- PR Comment: https://git.openjdk.org/jdk/pull/24773#issuecomment-2817873466