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