RFR: 8323183: ClassFile API performance improvements [v6]

Adam Sotona asotona at openjdk.org
Tue Jan 9 13:41:27 UTC 2024


On Tue, 9 Jan 2024 13:30:58 GMT, Adam Sotona <asotona at openjdk.org> wrote:

>> ClassFile API performance related improvements have been separated from #17121 into this PR.
>> 
>> These improvements are important to minimize performance regression of
>> 8294961: Convert java.base/java.lang.reflect.ProxyGenerator to use the Classfile API to generate proxy classes #17121
>> 
>> Please review.
>> 
>> Thanks,
>> Adam
>
> Adam Sotona has updated the pull request incrementally with three additional commits since the last revision:
> 
>  - updated copyright year
>  - reverted custom method slots counting in StackCounter
>  - improved and extended GenerateStackMaps benchmarks and renamed to CodeAttributeTools

StackMapGenerator benchmark is heavily benefiting from symbols caching for repeated execution.
I've created new CodeAttributeTools::benchmarkStackMapsGenerator and CodeAttributeTools::benchmarkStackCounter with focus on single use of each parsed model to eliminate background caching effect.
Then I've compared version with custom method parameter slots counting and version with symbols cached in NaT entries.
There is insignificant difference between these two approaches.
Explanation may by that repeated uses of the same NaT entry (of the called method) compensate the initial parsing cost. 

Based on these results I've decided to revert custom parameter slots counting method and apply the previously proposed solution.

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

PR Comment: https://git.openjdk.org/jdk/pull/17306#issuecomment-1883065817


More information about the core-libs-dev mailing list