[foreign-jextract] RFR: MemorySegmentPool + Allocator

Radoslaw Smogura github.com+7535718+rsmogura at openjdk.java.net
Sat Apr 17 20:58:11 UTC 2021


(Preview)

The MemorySegmentPool is a pool maintaining memory segments, optionally can expose allocator which can be bound to other scope, and which will return allocated segments back to pool.

However the best results has been achieved by using getSegmentEntry & putSegmentEntry methods.

The pool is intended to be used by long running applications (i.e. like global shared pool), where fast allocation and de-allocation of segments is critical (was designed during implementation of I/O subsystem with Panama, as a pool for temporary buffers between system I/O methods and Java byte arrays from InputStreams).

The pool uses hand-made SpinLockQueue as the Deque from JDK offers too much functionality and overhead.

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

Commit messages:
 - MemorySegmentPool + Allocator

Changes: https://git.openjdk.java.net/panama-foreign/pull/509/files
 Webrev: https://webrevs.openjdk.java.net/?repo=panama-foreign&pr=509&range=00
  Stats: 315 lines in 2 files changed: 315 ins; 0 del; 0 mod
  Patch: https://git.openjdk.java.net/panama-foreign/pull/509.diff
  Fetch: git fetch https://git.openjdk.java.net/panama-foreign pull/509/head:pull/509

PR: https://git.openjdk.java.net/panama-foreign/pull/509


More information about the panama-dev mailing list