RFR: 8334495: Use FFM instead of jdk.internal.misc.Unsafe in java.desktop font implementation [v3]

Andrey Turbanov aturbanov at openjdk.org
Tue Jul 9 20:08:16 UTC 2024


On Thu, 27 Jun 2024 18:29:55 GMT, Phil Race <prr at openjdk.org> wrote:

>> Migrate font code from jdk.internal.misc.Unsafe to using FFM.
>> This reduces the coupling between the java.desktop module and the internals of the java.base module.
>> 
>> The code being changed here is not particularly performance sensitive, and it is not executed in the most common cases.
>> The main impact performance-wise is a total of around 37ms in initialisation costs on my x64 macbook.
>> A minimal program that just draws a string to an image - does not even put up a window - runs at around 690-700ms.
>> There's variability in that number and the overall time for a JDK without the change is around (660-670ms)
>> In the small test, this is the first and only use of FFM, so the one-off part cost should move elsewhere when FFM starts
>> to be used earlier in the JDK itself.
>
> Phil Race has updated the pull request incrementally with one additional commit since the last revision:
> 
>   8334495

src/java.desktop/share/classes/sun/font/StrikeCache.java line 147:

> 145:     private static final VarHandle topLeftXHandle = getVarHandle(GlyphImageLayout, "topLeftX");
> 146:     private static final VarHandle topLeftYHandle = getVarHandle(GlyphImageLayout, "topLeftY");
> 147:     private static final VarHandle cellInfoHandle  = getVarHandle(GlyphImageLayout, "cellInfo");

Suggestion:

    private static final VarHandle cellInfoHandle = getVarHandle(GlyphImageLayout, "cellInfo");

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

PR Review Comment: https://git.openjdk.org/jdk/pull/19777#discussion_r1671170776


More information about the client-libs-dev mailing list