Tooling Продвинутый

Уменьшение размера заголовков объектов вдвое для повышения плотности хранения и эффективности кэша.

✕ 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
Заметили проблему в этом коде? Сообщите нам.
📦

Заголовки меньше на 50 %

8 байт вместо 16 на каждый объект.

Лучшее использование кэша

Больше объектов помещается в строки кэша процессора.

📊

Более высокая плотность

Больше объектов в том же объёме кучи.

Старый подход
128-битный заголовок
Современный подход
64-битный заголовок
Начиная с JDK
25
Сложность
Продвинутый
Компактные заголовки объектов
Доступно

Финализировано в JDK 25 LTS (JEP 519, сентябрь 2025).

Компактные заголовки объектов сокращают накладные расходы на каждый объект со 128 бит до 64 бит на 64-битных платформах. Это экономит память и улучшает использование кэша, особенно для приложений с большим количеством небольших объектов.