Tooling Avanzato

Riduci della metà la dimensione dell'header degli oggetti per una migliore densità di memoria e utilizzo della cache.

✕ 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.
📦

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
Header oggetto compatti
Disponibile

Finalizzato nel JDK 25 LTS (JEP 519, settembre 2025).

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.

Condividi 𝕏 🦋 in