On Fri, 8 Apr 2022 12:20:32 GMT, Claes Redestad <redes...@openjdk.org> wrote:

>> A few additional enhancements aiming to improve VH performance in the 
>> interpreter:
>> 
>> - Flatten `TypeAndInvokers`: adds a pointer to `VarHandle` (a small increase 
>> 40->48) but removes an object and an indirection on any instance actually 
>> used - and might avoid allocating the `MethodHandle[]` unnecessarily on some 
>> instances
>> - Have `checkExactAccessMode` return the directness of the `VarHandle` so 
>> that we can avoid some `isDirect` method calls.
>> 
>> Baseline, `-Xint`
>> 
>> Benchmark                                 Mode  Cnt    Score   Error  Units
>> VarHandleExact.exact_exactInvocation      avgt   30  478.324 ? 5.762  ns/op
>> VarHandleExact.generic_exactInvocation    avgt   30  392.114 ? 1.644  ns/op
>> VarHandleExact.generic_genericInvocation  avgt   30  822.484 ? 1.865  ns/op
>> 
>> 
>> Patched, `-Xint`
>> 
>> Benchmark                                 Mode  Cnt    Score   Error  Units
>> VarHandleExact.exact_exactInvocation      avgt   30  437.704 ? 5.320  ns/op
>> VarHandleExact.generic_exactInvocation    avgt   30  374.512 ? 3.154  ns/op
>> VarHandleExact.generic_genericInvocation  avgt   30  757.054 ? 1.237  ns/op
>> 
>> 
>> No significant performance difference in normal mode.
>
> Claes Redestad has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Simplified as suggested by @ExE-Boss

The change looks fine.  A `checkXXX` method if returning a boolean would 
typically indicate if it succeeds or not.    `checkExactAccessMode` returns the 
directness of this VarHandle which is not obvious from its method name.   It'd 
be better if the method name can be explicit that it returns its directness 
after the exact access mode check.  But I can't think of a good method name 
though.

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

Marked as reviewed by mchung (Reviewer).

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

Reply via email to