RFR: 8340280: Avoid calling MT.invokerType() when creating LambdaForms

Chen Liang liach at openjdk.org
Tue Sep 17 12:31:06 UTC 2024


On Tue, 17 Sep 2024 09:28:02 GMT, Claes Redestad <redestad at openjdk.org> wrote:

> This PR exploits the observation that in many of the cases where we call `methodType.invokerType()` we immediately translate it into a `Name[]` where the only effect is to create an array with an additional leading `BasicType.L_TYPE` argument. Only in a subset of cases will a corresponding `invokerType()` be created later to bind the MH to an invoker.
> 
> Providing methods to bypass the creationg of such transient, intermediary `MethodType` creation avoids excessive allocations and adding types to the MT interning table that quickly become stale.
> 
> Number of executed bytecode on a trivial HelloLambda application drops locally from ~517k to ~505k.

Marked as reviewed by liach (Reviewer).

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

PR Review: https://git.openjdk.org/jdk/pull/21035#pullrequestreview-2309609822


More information about the core-libs-dev mailing list