RFR: 8266015: Implement AdapterHandlerLibrary lookup fast-path for common adapters

Claes Redestad redestad at openjdk.java.net
Wed Apr 28 14:56:13 UTC 2021


This patch refactors AdapterHandlerLibrary initialization so that we can initialize a handful of commonly used adapters early during bootstrap, and avoid taking the AdapterHandlerLibrary_lock when looking up these adapters.

Since the 5 most common adapters plus the abstract adapter constitutes roughly 60% of the method shapes loaded and linked on a Hello World, this means a relatively significant startup optimization (~2M insns on Hello World); most of the win is in lookup code that will be a significant part of the cost of class loading even when no adapters need to be generated.

This enhancement partially recuperates the regression reported in https://bugs.openjdk.java.net/browse/JDK-8265523

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

Commit messages:
 - Use signature constants
 - Make sure all adapters are in the table to avoid duplicates, reduce work done inside lock
 - Type typo
 - Fix ResourceMark, remove pointer from adapter handler name
 - Various cleanups
 - Various improvements, fix PrintAdapterHandlers/VerifyAdapterCalls/-Sharing
 - Merge branch 'master' into adapter_init
 - Initialize AdapterHandlerLibrary and the most common handlers during bootstrap

Changes: https://git.openjdk.java.net/jdk/pull/3706/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=3706&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8266015
  Stats: 324 lines in 2 files changed: 184 ins; 46 del; 94 mod
  Patch: https://git.openjdk.java.net/jdk/pull/3706.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/3706/head:pull/3706

PR: https://git.openjdk.java.net/jdk/pull/3706


More information about the hotspot-runtime-dev mailing list