Header oggetto compatti
Riduci della metà la dimensione dell'header degli oggetti per una migliore densità di memoria e utilizzo della cache.
Confronto Codice
✕ 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
Vedi un problema con questo codice? Faccelo sapere.
Perché vince l'approccio moderno
Header più piccoli del 50%
8 byte invece di 16 per oggetto.
Migliore utilizzo della cache
Più oggetti entrano nelle linee di cache della CPU.
Maggiore densità
Più oggetti nello stesso heap.
Approccio Vecchio
Header a 128 bit
Approccio Moderno
Header a 64 bit
Dal JDK
25
Difficoltà
Avanzato
Supporto JDK
Header oggetto compatti
Disponibile
Finalizzato nel JDK 25 LTS (JEP 519, settembre 2025).
Come funziona
Gli header oggetto compatti riducono l'overhead per oggetto da 128 bit a 64 bit sulle piattaforme a 64 bit. Questo risparmia memoria e migliora l'utilizzo della cache, specialmente per le applicazioni con molti oggetti piccoli.
Documentazione Correlata