On Mon, 28 Oct 2024 21:26:38 GMT, Phil Race <[email protected]> wrote:

> https://bugs.openjdk.org/browse/JDK-8338677 already improved things for this 
> so that's good.
> 
> This fix adds to it lazy initialisation of VarHandles in StrikeCache at the 
> cost of some extra code.
> Since these VarHandles get used more or less immediately on Linux this new 
> fix won't further improve matters there
> But should help on Mac where they aren't usually needed at startup
> And Windows is somewhere in between.

I suspect dropping `static final` from these `VarHandle`-s would degrade 
performance, as some internal checks in `VHs` would not constant-fold. 

Do you need these in isolation, or can you lazily-initialize them all at once? 
You can use "holder class" pattern like:


  static class VHHolder {
    static final VarHandle xAdvanceHandle = ...
  }

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

Changes requested by shade (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/21748#pullrequestreview-2402499135

Reply via email to