RFR: 8253920: Share method trampolines in CDS dynamic archive
Claes Redestad
redestad at openjdk.java.net
Mon Oct 26 18:44:20 UTC 2020
On Mon, 26 Oct 2020 18:12:16 GMT, Calvin Cheung <ccheung at openjdk.org> wrote:
> This patch is to allow sharing of the same method trampoline for archived Methods with the same AdapterHandleEntry when using CDS dynamic archive.
>
> Running javac on HelloWorld with CDS dynamic archive, the number of calls to SharedRuntime::generate_trampoline() is reduced to 406 times vs 12601 times without the patch.
>
> In terms of saving on instructions and time (on linux-x64):
> instr delta = -2807662 -0.1369%
> time delta = -6.860 ms -1.8798%
>
> It passed tiers 1,2,3,4 testing.
LGTM
Thanks for ensuring static data-structures only used when dumping are lazily allocated.
src/hotspot/share/classfile/systemDictionaryShared.cpp line 1189:
> 1187: ResourceObj::C_HEAP> {};
> 1188:
> 1189: static LoadedUnregisteredClassesTable* _loaded_unregistered_classes = NULL;
Good!
-------------
Marked as reviewed by redestad (Reviewer).
PR: https://git.openjdk.java.net/jdk/pull/868
More information about the hotspot-runtime-dev
mailing list