Cabeceras de objetos compactas
Reduce a la mitad el tamaño de las cabeceras de objetos para mejor densidad de memoria y uso de caché.
Comparación de Código
✕ 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
¿Ves un problema con este código? Cuéntanos.
Por qué gana la forma moderna
Cabeceras 50% más pequeñas
8 bytes en lugar de 16 por objeto.
Mejor uso de caché
Más objetos caben en las líneas de caché de la CPU.
Mayor densidad
Más objetos caben en el mismo tamaño de heap.
Enfoque Antiguo
Cabeceras de 128 bits
Enfoque Moderno
Cabeceras de 64 bits
Desde JDK
25
Dificultad
Avanzado
Soporte JDK
Cabeceras de objetos compactas
Disponible
Finalizado en JDK 25 LTS (JEP 519, sept. 2025).
Cómo funciona
Las cabeceras de objetos compactas reducen la sobrecarga por objeto de 128 bits a 64 bits en plataformas de 64 bits. Esto ahorra memoria y mejora la utilización de caché, especialmente para aplicaciones con muchos objetos pequeños.
Documentación Relacionada