On Fri, 2 May 2025 16:08:09 GMT, Shaojin Wen <s...@openjdk.org> wrote:

>> Using an anonymous class for the cleanup action had very adverse effects on 
>> performance. I didn't want to use a lambda for startup performance reasons.
>
> If using lambda affects performance, how about using anonymous classes?
> 
>             return new PerThread(new ReentrantLock(),
>                     arena,
>                     new SlicingAllocator(arena.allocate(byteSize, 
> byteAlignment)),
>                     new Consumer<MemorySegment>() {
>                         @Override
>                         public void accept(MemorySegment memorySegment) {
>                             Reference.reachabilityFence(arena);
>                         }});

Anonymous classes also captures outer variables and break cleaner/GC. The only 
safe measures are local enums or records, which never capture outer variables 
(anonymous classes cannot be enum or records)

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/24829#discussion_r2071880222

Reply via email to