[External] : Re: MemorySegment.ofAddress(...).reinterpret(...)
Brian S O'Neill
bronee at gmail.com
Fri Jul 7 16:18:30 UTC 2023
I also just realized something. If I use memorySegmentViewVarHandle for
the get/set methods, would this boost performance?
On 2023-07-07 09:11 AM, Brian S O'Neill wrote:
> When I obtain a MethodHandle, a module access check is performed. When I
> invoke it, no check is performed, and a static final reference to a it
> gets fully optimized.
>
> It seems to me that if I were to obtain access to the copy method (and
> the get/set methods) via a MethodHandle, then the restricted method
> check only needs to be performed once.
>
> Granted, this approach is a little bit ugly from an API perspective, but
> MethodHandles are already a key component of the ffm API. A MethodHandle
> transformation could also be performed automatically by the compiler (at
> some level), but that's probably going too far.
>
> On 2023-07-07 08:55 AM, Jorn Vernee wrote:
>> Well, the implementation of a restricted method doesn't know whether
>> the caller's module has already been checked :) That is tracked on a
>> per-module basis, but either way we have to walk the stack to get the
>> caller's module.
>>
>> Jorn
>>
>> On 07/07/2023 17:51, Brian S O'Neill wrote:
>>> Is the restricted method check performed every single time? Why? The
>>> restriction applies to the module, so it only really needs to be
>>> checked once.
>>>
>>> On 2023-07-07 08:32 AM, Jorn Vernee wrote:
>>>
>>>> We can't just drop an array bounds check, even if we were to make
>>>> the method restricted. (Besides, a restricted method needs to check
>>>> if the caller has native access, which adds its own overhead)
>>>>
More information about the panama-dev
mailing list