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

Reply via email to