En-têtes d'objets compacts
Réduit de moitié la taille des en-têtes d'objets pour une meilleure densité mémoire et utilisation du cache.
Comparaison de Code
✕ 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.
Pourquoi la méthode moderne gagne
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é
Support JDK
En-têtes d'objets compacts
Disponible
Finalisé dans JDK 25 LTS (JEP 519, sept. 2025).
Comment ça fonctionne
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.
Documentation Associée