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