RFR: 8338532: Speed up the ClassFile API MethodTypeDesc#ofDescriptor
Shaojin Wen
duke at openjdk.org
Mon Aug 19 06:32:22 UTC 2024
The current implementation of ofDescriptor puts return type and parameter types together in an ArrayList, and then splits them into return type and array of parameter types. This ArrayList creation is unnecessary, considering most descriptors only have few parameter types.
By splitting return type and parameter types separately and scanning the descriptor first to get the number of parameters, we can just allocate an exact, trusted array for the resulting MethodTypeDesc without copy.
-------------
Commit messages:
- more descString
- Consolidated parsing, now supports 9 params
- clean up Wrapper.forPrimitiveType
- use ConstantDescs.MTD_void
- optimization for `Ljava/lang/Object;`
- more descString
- private PrimitiveClassDescImpl constructor
- private PrimitiveClassDescImpl constructor
- minor refactor
- add comments
- ... and 32 more: https://git.openjdk.org/jdk/compare/74066bcc...ee321904
Changes: https://git.openjdk.org/jdk/pull/20611/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=20611&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8338532
Stats: 272 lines in 11 files changed: 160 ins; 61 del; 51 mod
Patch: https://git.openjdk.org/jdk/pull/20611.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/20611/head:pull/20611
PR: https://git.openjdk.org/jdk/pull/20611
More information about the core-libs-dev
mailing list