RFR: 8349146: [REDO] Implement a better allocator for downcalls [v7]
Per Minborg
pminborg at openjdk.org
Fri May 2 10:43:46 UTC 2025
On Fri, 2 May 2025 10:40:04 GMT, Per Minborg <pminborg at openjdk.org> wrote:
>> This PR is based on the work of @mernst-github and aims to implement an _internal_ thread-local 'stack' allocator, which works like a dynamically sized arena, but with reset functionality to reset the allocated size back to a certain level. The underlying memory could stay around between calls, which could improve performance.
>>
>> Re-allocated segments are not zeroed between allocations.
>
> Per Minborg has updated the pull request incrementally with one additional commit since the last revision:
>
> Address comments
Updated benchmarks:
Benchmark (ELEM_SIZE) Mode Cnt Score Error Units
BufferStackBench.OfVirtual.buffer 8 avgt 15 12.695 ± 0.205 ns/op
BufferStackBench.OfVirtual.buffer 16 avgt 15 12.622 ± 0.078 ns/op
BufferStackBench.OfVirtual.buffer 32 avgt 15 12.523 ± 0.022 ns/op
BufferStackBench.OfVirtual.confined 8 avgt 15 22.902 ± 0.407 ns/op
BufferStackBench.OfVirtual.confined 16 avgt 15 23.858 ± 0.652 ns/op
BufferStackBench.OfVirtual.confined 32 avgt 15 25.544 ± 0.458 ns/op
BufferStackBench.buffer 8 avgt 15 4.923 ± 0.029 ns/op
BufferStackBench.buffer 16 avgt 15 4.971 ± 0.095 ns/op
BufferStackBench.buffer 32 avgt 15 4.980 ± 0.105 ns/op
BufferStackBench.confined 8 avgt 15 22.713 ± 0.289 ns/op
BufferStackBench.confined 16 avgt 15 23.576 ± 0.348 ns/op
BufferStackBench.confined 32 avgt 15 25.272 ± 0.530 ns/op
and
vBenchmark Mode Cnt Score Error Units
CallOverheadByValue.OfVirtual.byPtr avgt 15 4.159 ± 0.097 ns/op
CallOverheadByValue.OfVirtual.byValue avgt 15 16.535 ± 0.433 ns/op
CallOverheadByValue.byPtr avgt 15 4.119 ± 0.031 ns/op
CallOverheadByValue.byValue avgt 15 11.404 ± 0.240 ns/op
-------------
PR Comment: https://git.openjdk.org/jdk/pull/24829#issuecomment-2846906803
More information about the core-libs-dev
mailing list