RFR: 8336856: Efficient hidden class-based string concatenation strategy [v55]

Shaojin Wen duke at openjdk.org
Fri Aug 16 13:46:00 UTC 2024


On Tue, 13 Aug 2024 16:34:18 GMT, Shaojin Wen <duke at openjdk.org> wrote:

>> The current strategy for bootstrapping JEP 280 String concat expressions uses either an optimized MH expression tree, or, due to scalability issues with that implementation, a per call-site StringBuilder-based class generation scheme.
>> 
>> This RFE seeks to unify these into a single strategy that uses per-shape class generation emitting code semantically similar to the optimized MH expression tree. Using hidden classes installed into java.lang with access to the StringConcatHelper set of utility methods this can achieve similar throughput performance, while reducing the number of generated classes at high arities, reducing startup overheads, and improving warmup characteristics.
>> 
>> This RFE was initially prompted by a suggestion of @cl4es in the discussion of PR #20253 (https://github.com/openjdk/jdk/pull/20253#issuecomment-2240412866), and then evolved after collaborating on this issue into this full re-implementation.
>
> Shaojin Wen has updated the pull request incrementally with two additional commits since the last revision:
> 
>  - static final
>  - code style

135 comments, 112 + 28 conversations (28 in draft PR #20248), this is a huge work!

@cl4es provided ideas and solved several key technical problems, including solving reusability and forceinline to make C2 work, erase argument, and solving WithSecurityManager build errors.

@liach provided a way to run without trusted lookup permissions.

Thanks to @cl4es and @liach, it is your help to complete this huge work, or more accurately, we worked together efficiently and well to complete this huge work.

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

PR Comment: https://git.openjdk.org/jdk/pull/20273#issuecomment-2293538032


More information about the core-libs-dev mailing list