TGViewer
Чашечка Java Чашечка Java @a_cup_of_java · 8.37K subscribers
Post #8664 293
Как измерить экономию памяти от компактных заголовков в Java 27

В Java 27 HotSpot по умолчанию сокращает заголовок объекта с 12 до 8 байт. Но из-за выравнивания по 8 байт объект с одним полем int остался 16-байтным, а с двумя уменьшился с 24 до 16 байт.

Воспроизводимый эксперимент сравнивает две JVM с одинаковыми настройками кучи и G1. Java-агент вызывает getObjectSize() и измеряет только сам объект, без объектов по ссылкам. Во втором запуске компактные заголовки отключаются флагом -XX:-UseCompactObjectHeaders.

Перед уменьшением лимита кучи стоит проверить формы объектов, которые преобладают в сервисе, а затем сравнить живую кучу, нагрузку на GC, задержки и память процесса. Сокращение заголовка само по себе ещё не доказывает экономию ресурсов приложения.
  • 👍 1
More from @a_cup_of_java
  1. Oct 1, 2026Spring Boot 4 и BoxLang: как сохранить CFML-шаблоны при миграции BoxLang Spring Boot Start…
  2. Oct 1, 2026JDK 25 и G1: почему Arrays.fill замедлился в 265 раз В JMH-тесте на Apple M4 Max заполнени…
  3. Sep 30, 2026Как настроить MFA в Spring Security 7 для приложения и отдельных эндпоинтов Spring Securit…
  4. Sep 30, 2026Как StructuredTaskScope в JDK 27 отменяет лишнюю работу при сбое Два независимых вызова к…
  5. Sep 30, 2026Как подтвердить взаимную блокировку по дампу потоков Java Если JVM перестала выполнять раб…
  6. Sep 29, 2026Spring Boot 4: настраиваем экспорт логов, метрик и трассировок через OpenTelemetry В Sprin…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →