RFR: 8350118: Simplify the layout access VarHandle [v3]
Jorn Vernee
jvernee at openjdk.org
Wed Feb 26 20:27:56 UTC 2025
On Wed, 26 Feb 2025 20:13:42 GMT, Chen Liang <liach at openjdk.org> wrote:
>> Simplify the layout access var handles to be direct in some common cases. Also made `VarHandle::isAccessModeSupported` report if an access mode is supported for a VH.
>>
>> Reduces the instructions to execute this code in a simple main by 47%:
>>
>> long[] arr = new long[8];
>> var ms = MemorySegment.ofArray(arr);
>> ms.setAtIndex(ValueLayout.JAVA_BYTE, 12, (byte) 3);
>>
>>
>> Main overheads in FFM are identified to be:
>> 1. Eager initialization of direct MethodHandle; can be CDS archived
>> 2. MH combinator forms via LambdaFormEditor, not cached right now and always have large overhead
>>
>> Still need other measures to deal with common user patterns of `MethodHandles.insertCoordinates(vh, 1, 0L)` which currently is still very slow.
>>
>> Tests: 2 unrelated failures on tier 1-3
>
> Chen Liang has updated the pull request incrementally with one additional commit since the last revision:
>
> Jorn vernee review
Some more general questions I have: Using which methodology was the performance impact of this patch measured? How can someone reproduce that measurement (now and in the future)? Is there some script or other automation we could add to the repo to do the measurement?
(I have an idea about the answers, but I think it's good to capture the answers here, as part of this review thread, as well)
-------------
PR Comment: https://git.openjdk.org/jdk/pull/23720#issuecomment-2686113353
More information about the build-dev
mailing list