RFR: 8339642: Reduce overheads in InvokerBytecodeGenerator

Claes Redestad redestad at openjdk.org
Fri Sep 6 10:07:22 UTC 2024


- A small portion (~5%) of the instrumented overhead when spinning MH/LF classes in `InvokeBytecodeGenerator` comes from creating the exact same `RuntimeVisibleAnnotationsAttribute` for every method. Introducing a couple of constants has a small but measurable impact.
- `classDesc(MemberName.class)` is called ~8000 times during an OpenJDK build, `classDesc(MethodType.class)` ~900 - special casing looks profitable
- Class name validation narrowed down, use ReferenceClassDescImpl.ofValidated
- Various minor optimizations helping reduce bytecode size and speed up interpreter execution

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

Commit messages:
 - Reduce overheads in InvokerBytecodeGenerator

Changes: https://git.openjdk.org/jdk/pull/20887/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=20887&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8339642
  Stats: 75 lines in 2 files changed: 30 ins; 32 del; 13 mod
  Patch: https://git.openjdk.org/jdk/pull/20887.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/20887/head:pull/20887

PR: https://git.openjdk.org/jdk/pull/20887


More information about the core-libs-dev mailing list