RFR: 8308899: Introduce Classfile.Context and improve Classfile.Option(s) [v13]

Adam Sotona asotona at openjdk.org
Mon Jun 12 15:34:06 UTC 2023


On Mon, 12 Jun 2023 11:20:40 GMT, Adam Sotona <asotona at openjdk.org> wrote:

>> Classfile context object and multi-state options have been discussed at https://mail.openjdk.org/pipermail/classfile-api-dev/2023-May/000321.html
>> This patch implements the proposed changes in Classfile API and fixes all affected code across JDK sources and tests.
>> 
>> Please review.
>> 
>> Thanks,
>> Adam
>
> Adam Sotona has updated the pull request incrementally with two additional commits since the last revision:
> 
>  - Revert "removal of ClassHierarchyImpl.DEFAULT_RESOLVER"
>    esolver.java
>  - Revert "proposed semi-synchronized caching, where the map is not locked during delegate call"
>    
>    This reverts commit ae2877512d978468743bcaa7e0f596729f12ee72.

I've fixed stack map generator dispatching code and reverted the cache-related changes to focus on performance regression caused by the Classfile context introduction and unfortunately it is still there.
Affected by at least 12% regression are all code transformations, with the worst case AdHocAdapt.transform LIFT2 (22% regression).
Detailed profiling shows regressions in self-time spent in code transformation lambda calls, for example `ChainedCodeBuilder::with` only calls `consumer.accept` and in ~30s benchmark it spent 2s in self-time (which is half of the whole regression).

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

PR Comment: https://git.openjdk.org/jdk/pull/14180#issuecomment-1587575761


More information about the core-libs-dev mailing list