capypad
0 Tage Serie
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
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.