java / expert
Snippet
Deterministischer Off-Heap-Speicher mit der Foreign Function & Memory API
Die Foreign Function & Memory (FFM) API (Java 22+) bietet einen sicheren und effizienten Weg, auf Speicher außerhalb des Java-Heaps zuzugreifen. Im Gegensatz zu ByteBuffer nutzt sie 'Arenas' für ein deterministisches Lifecycle-Management und vermeidet GC-Overhead bei großen Datenmengen.
snippet.java
1
2
3
4
5
6
try (Arena arena = Arena.ofConfined()) {MemorySegment segment = arena.allocate(1024, 1);segment.setAtIndex(ValueLayout.JAVA_INT, 0, 42);int value = segment.getAtIndex(ValueLayout.JAVA_INT, 0);// Memory is released automatically when arena closes}
Erklärung
1
Arena.ofConfined()
Allokiert eine Speicher-Arena, die zur Sicherheit auf den aktuellen Thread beschränkt ist.
2
arena.allocate(1024, 1)
Reserviert 1024 Bytes Off-Heap-Speicher mit einer 1-Byte-Ausrichtung.
3
segment.setAtIndex(...)
Führt eine typsichere Schreiboperation in das rohe Speichersegment aus.