Tooling Avancé

Réduit de moitié la taille des en-têtes d'objets pour une meilleure densité mémoire et utilisation du 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
Un problème avec ce code ? Dites-le nous.
📦

En-têtes 50% plus petits

8 octets au lieu de 16 par objet.

Meilleure utilisation du cache

Plus d'objets tiennent dans les lignes de cache du CPU.

📊

Densité accrue

Plus d'objets tiennent dans la même taille de heap.

Ancienne Approche
En-têtes de 128 bits
Approche Moderne
En-têtes de 64 bits
Depuis JDK
25
Difficulté
Avancé
En-têtes d'objets compacts
Disponible

Finalisé dans JDK 25 LTS (JEP 519, sept. 2025).

Les en-têtes d'objets compacts réduisent la surcharge par objet de 128 bits à 64 bits sur les plateformes 64 bits. Cela économise de la mémoire et améliore l'utilisation du cache, surtout pour les applications avec de nombreux petits objets.

Partager 𝕏 🦋 in