RFR: 8337237: Use FFM instead of Unsafe for Java 2D RenderBuffer class [v2]

SWinxy duke at openjdk.org
Mon Jul 29 16:37:31 UTC 2024


On Fri, 26 Jul 2024 22:59:24 GMT, Phil Race <prr at openjdk.org> wrote:

>> Migrate from using Unsafe to FFM's MemorySegment API for allocating and setting native memory.
>> This code is used by Metal, OpenGL and D3D, so I manually tested SwingSet2 and J2Demo as well as running all the usual tests.
>> I also did some micro-benchmarking on the performance of Unsafe vs MemorySegment.
>> The performance of either is more than sufficient for us .. ie they could be 10x slower and we wouldn't even notice.
>> But they are in the same ballpark, and if one or the other is clearly faster it is the new FFM code.
>
> Phil Race has updated the pull request incrementally with one additional commit since the last revision:
> 
>   8337237

Could this class use `{Byte,Short,Integer,Long,Double}.BYTES` instead of `SIZEOF_{BYTE,SHORT,INT,LONG,DOUBLE}` constants? That's what I always write when working with native memory, and I find it less magic-word-y. E.g.:

// putShort(short)
curOffset += Short.BYTES;

// put(short[], ...)
position(position() + length * Short.BYTES);

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

PR Comment: https://git.openjdk.org/jdk/pull/20339#issuecomment-2256396351


More information about the client-libs-dev mailing list