On Tue, 8 Oct 2024 01:13:37 GMT, Chen Liang <li...@openjdk.org> wrote:

>> @cl4es discovered that Stack Map generation in ClassFile API uses 
>> `componentType` and `arrayType` for `aaload` `aastore` instructions, which 
>> are currently quite slow. We can split out array class descriptors from 
>> class or interfaces to support faster `arrayType` and `componentType` 
>> operations.
>> 
>> Tentative, as I currently have no way to measure the actual impact of this 
>> patch on the startup performance; however, this made the `ClassDesc` 
>> implementations much cleaner.
>
> Chen Liang has updated the pull request with a new target base due to a merge 
> or a rebase. The pull request now contains nine commits:
> 
>  - class or interface descriptor renamed for clarity
>  - Merge branch 'master' of https://github.com/openjdk/jdk into 
> feature/array-cd
>  - Cleanup after merge
>  - Merge branch 'master' of https://github.com/openjdk/jdk into 
> feature/array-cd
>  - Merge branch 'master' of https://github.com/openjdk/jdk into 
> feature/array-cd
>  - Compile error
>  - Redundant import
>  - Merge branch 'master' of https://github.com/openjdk/jdk into 
> feature/array-cd
>  - 8338544: Dedicated Array class descriptor implementation

Looks reasonable to me. 

An alternative could be to put an `int rank` in both `PrimitiveClassDescImpl` 
and `ReferenceClassDescImpl`. Would lead to slightly gnarlier code in places, 
but keep the number of classes down. Worth considering if any throughput 
benchmark sees fallout from going from 2 to 3 types. 

The `internalNameToDesc` changes could perhaps better have been done in a 
separate PR but no point teasing it apart now.

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

Marked as reviewed by redestad (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/20665#pullrequestreview-2353684434

Reply via email to