[foreign-jextract] RFR: MemorySegmentPool + Allocator [v8]
Radoslaw Smogura
github.com+7535718+rsmogura at openjdk.java.net
Thu Apr 22 21:15:35 UTC 2021
On Thu, 22 Apr 2021 20:29:56 GMT, Maurizio Cimadamore <mcimadamore at openjdk.org> wrote:
>> Radoslaw Smogura has updated the pull request incrementally with one additional commit since the last revision:
>>
>> Tests better distribute sizes for pseudo random allocation - now much larger buffers gets allocated and used.
>>
>> I'm bit puzzled here, as it looks like, that allocatioin is very fast, only
>> reading is extreme slow.
>>
>> For comparision when processing single allocation:
>> Update only first byte: direct pool access - 33ns, malloc / free: 59ns
>> Update very 1024th byte: 12980ns, vs malloc: 8400ns
>>
>> I think simillar results has been spot during test with StringLen.
>
> src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/MemorySegmentPool.java line 199:
>
>> 197: });
>> 198:
>> 199: return segmentEntry.memoryAddress.asSegment(1L << bitBound, resourceScope);
>
> I wouldn't be surprised if this was the issue - the segment is created with a size that is determined by a long shift. If this segment gets scalarized, I wonder if the VM is able to see that the segment size is actually an int and not a long. Worth a shot.
I checked it, and I get same results. I'll shortly send an updated version
-------------
PR: https://git.openjdk.java.net/panama-foreign/pull/509
More information about the panama-dev
mailing list