RFR: 8338544: Dedicated Array class descriptor implementation [v2]
Claes Redestad
redestad at openjdk.org
Tue Oct 8 07:55:06 UTC 2024
On Tue, 8 Oct 2024 01:13:37 GMT, Chen Liang <liach at 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
More information about the core-libs-dev
mailing list