Headers de objeto compactos
Reduza o tamanho do header de objetos pela metade para melhor densidade de memória e uso de cache.
Comparação 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
Viu um problema com este código? Nos avise.
Por que a forma moderna ganha
Headers 50% menores
8 bytes em vez de 16 por objeto.
Melhor uso de cache
Mais objetos cabem nas linhas de cache da CPU.
Maior densidade
Acomode mais objetos no mesmo tamanho de heap.
Abordagem Antiga
Headers de 128 bits
Abordagem Moderna
Headers de 64 bits
Desde o JDK
25
Dificuldade
Avançado
Suporte JDK
Headers de objeto compactos
Disponível
Finalizado no JDK 25 LTS (JEP 519, set 2025).
Como funciona
Headers de objeto compactos reduzem o overhead por objeto de 128 bits para 64 bits em plataformas de 64 bits. Isso economiza memória e melhora a utilização do cache, especialmente para aplicações com muitos objetos pequenos.
Documentação Relacionada