On Sun, 21 Jul 2024 12:25:36 GMT, Shaojin Wen <d...@openjdk.org> wrote:
> The current implementation of StringConcat is to mix the coder and length > into a long. This operation will have some overhead for int/long/boolean > types. We can separate the calculation of the coder from the calculation of > the length, which can improve the performance in the scenario of concat > int/long/boolean. > > This idea comes from the suggestion of @l4es in the discussion of PR > https://github.com/openjdk/jdk/pull/20253#issuecomment-2240412866 Here are the performance numbers running on a MacBook M1 Pro, In the scenario of concat two ints, such as `StringConcat.concatConstIntConstInt`, the performance is improved by 10.98% -Benchmark (intValue) Mode Cnt Score Error Units (master c25c4896ad9ef031e3cddec493aef66ff87c48a7) -StringConcat.concatConstInt 4711 avgt 15 6.283 ? 0.007 ns/op -StringConcat.concatConstIntConstInt 4711 avgt 15 15.164 ? 0.428 ns/op +Benchmark (intValue) Mode Cnt Score Error Units ( 227158a7879023cf495c8f1e3704d7e665fcb3bb ) +StringConcat.concatConstInt 4711 avgt 15 6.115 ? 0.062 ns/op +2.74% +StringConcat.concatConstIntConstInt 4711 avgt 15 13.663 ? 0.413 ns/op +10.98% ------------- PR Comment: https://git.openjdk.org/jdk/pull/20273#issuecomment-2241598444