Kompakte Objekt-Header
Objekt-Header-Größe halbieren für bessere Speicherdichte und Cache-Nutzung.
Code-Vergleich
✕ Java 8
// Default: 128-bit object header // = 16 bytes overhead per object // A boolean field object = 32 bytes! // Mark word (64) + Klass pointer (64)
✓ Java 25
// -XX:+UseCompactObjectHeaders // 64-bit object header // = 8 bytes overhead per object // 50% less header memory // More objects fit in cache
Problem mit diesem Code entdeckt? Sag uns Bescheid.
Warum der moderne Weg gewinnt
50 % kleinere Header
8 Bytes statt 16 pro Objekt.
Bessere Cache-Nutzung
Mehr Objekte passen in CPU-Cache-Zeilen.
Höhere Dichte
Mehr Objekte im gleichen Heap-Bereich.
Alter Ansatz
128-Bit-Header
Moderner Ansatz
64-Bit-Header
Seit JDK
25
Schwierigkeitsgrad
Experte
JDK-Unterstützung
Kompakte Objekt-Header
Verfügbar
In JDK 25 LTS finalisiert (JEP 519, Sept. 2025).
Wie es funktioniert
Kompakte Objekt-Header reduzieren den Overhead pro Objekt von 128 Bit auf 64 Bit auf 64-Bit-Plattformen. Dies spart Speicher und verbessert die Cache-Nutzung, insbesondere für Anwendungen mit vielen kleinen Objekten.
Zugehörige Dokumentation