On Thu, 17 Sep 2026 10:50:00 GMT, Per Minborg <[email protected]> wrote:
> This PR proposes removing the entire internal `BufferStack` and associated > classes and tests. Instead, we can now simply rely on a `Arena.ofConfined` > which will provide pooling for us automatically. > > If integrated, this PR would imply: > 1,511 lines removed net across 13 files compared with master: > - 602 production-source lines > - 909 test and benchmark lines > > --------- > - [x] I confirm that I make this contribution in accordance with the [OpenJDK > Interim AI Policy](https://openjdk.org/legal/ai). Base: Benchmark Mode Cnt Score Error Units CallOverheadByValue.OfVirtual.byPtr avgt 50 2.241 ± 0.010 ns/op CallOverheadByValue.OfVirtual.byPtr:gc.alloc.rate avgt 50 0.006 ± 0.001 MB/sec CallOverheadByValue.OfVirtual.byPtr:gc.alloc.rate.norm avgt 50 ≈ 10⁻⁵ B/op CallOverheadByValue.OfVirtual.byPtr:gc.count avgt 50 ≈ 0 counts CallOverheadByValue.OfVirtual.byValue avgt 50 11.530 ± 0.182 ns/op CallOverheadByValue.OfVirtual.byValue:gc.alloc.rate avgt 50 5297.851 ± 81.966 MB/sec CallOverheadByValue.OfVirtual.byValue:gc.alloc.rate.norm avgt 50 64.000 ± 0.001 B/op CallOverheadByValue.OfVirtual.byValue:gc.count avgt 50 734.000 counts CallOverheadByValue.OfVirtual.byValue:gc.time avgt 50 339.000 ms CallOverheadByValue.byPtr avgt 50 2.239 ± 0.006 ns/op CallOverheadByValue.byPtr:gc.alloc.rate avgt 50 0.006 ± 0.001 MB/sec CallOverheadByValue.byPtr:gc.alloc.rate.norm avgt 50 ≈ 10⁻⁵ B/op CallOverheadByValue.byPtr:gc.count avgt 50 ≈ 0 counts CallOverheadByValue.byValue avgt 50 5.468 ± 0.042 ns/op CallOverheadByValue.byValue:gc.alloc.rate avgt 50 0.006 ± 0.001 MB/sec CallOverheadByValue.byValue:gc.alloc.rate.norm avgt 50 ≈ 10⁻⁴ B/op CallOverheadByValue.byValue:gc.count avgt 50 ≈ 0 counts Patch: Benchmark Mode Cnt Score Error Units CallOverheadByValue.OfVirtual.byPtr avgt 50 2.263 ± 0.024 ns/op CallOverheadByValue.OfVirtual.byPtr:gc.alloc.rate avgt 50 0.006 ± 0.001 MB/sec CallOverheadByValue.OfVirtual.byPtr:gc.alloc.rate.norm avgt 50 ≈ 10⁻⁵ B/op CallOverheadByValue.OfVirtual.byPtr:gc.count avgt 50 ≈ 0 counts CallOverheadByValue.OfVirtual.byValue avgt 50 5.656 ± 0.134 ns/op <-- 2x Faster CallOverheadByValue.OfVirtual.byValue:gc.alloc.rate avgt 50 0.067 ± 0.103 MB/sec CallOverheadByValue.OfVirtual.byValue:gc.alloc.rate.norm avgt 50 ≈ 10⁻³ B/op CallOverheadByValue.OfVirtual.byValue:gc.count avgt 50 ≈ 0 counts CallOverheadByValue.byPtr avgt 50 2.256 ± 0.013 ns/op CallOverheadByValue.byPtr:gc.alloc.rate avgt 50 0.006 ± 0.001 MB/sec CallOverheadByValue.byPtr:gc.alloc.rate.norm avgt 50 ≈ 10⁻⁵ B/op CallOverheadByValue.byPtr:gc.count avgt 50 ≈ 0 counts CallOverheadByValue.byValue avgt 50 4.877 ± 0.063 ns/op <-- 10% Faster CallOverheadByValue.byValue:gc.alloc.rate avgt 50 0.006 ± 0.001 MB/sec CallOverheadByValue.byValue:gc.alloc.rate.norm avgt 50 ≈ 10⁻⁵ B/op CallOverheadByValue.byValue:gc.count avgt 50 ≈ 0 counts ------------- PR Comment: https://git.openjdk.org/jdk/pull/32924#issuecomment-5713758537
