TGViewer
Чашечка Java Чашечка Java @a_cup_of_java · 8.37K subscribers
Post #8662 478
JDK 25 и G1: почему Arrays.fill замедлился в 265 раз

В JMH-тесте на Apple M4 Max заполнение массивов ссылок заняло у G1 139 мс, а у ParallelGC 0,5 мс. При этом сборка мусора не запускалась: почти всё время ушло в JIT-код Arrays.fill.

Причина: барьер записи, который JVM добавляет к каждому присваиванию ссылки. Он помечает изменённые участки кучи, чтобы G1 не сканировал всё старое поколение. На результат также повлияли размер регионов G1 и переход массива в старое поколение.

Разбор JMH-бенчмарка и ARM64-инструкций HotSpot объясняет, почему одной инструкции оказалось недостаточно. Замедление относится к этой конфигурации: перед настройкой G1 повторите замер на своей нагрузке.
  • 😁 3
More from @a_cup_of_java
  1. Oct 1, 2026Как измерить экономию памяти от компактных заголовков в Java 27 В Java 27 HotSpot по умолч…
  2. Oct 1, 2026Spring Boot 4 и BoxLang: как сохранить CFML-шаблоны при миграции BoxLang Spring Boot Start…
  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 →