TGViewer
Чашечка Java Чашечка Java @a_cup_of_java · 8.37K subscribers
Post #8672 289
JDK 28: маленькие аллокации Arena.ofConfined() станут дешевле

Для будущего JDK 28 подготовили оптимизацию FFM API: небольшие выделения нативной памяти в Arena.ofConfined() смогут обслуживаться из переиспользуемых пулов. По умолчанию кэш платформенного потока хранит до четырёх пулов по 64 байта.

Пул выдают арене при подходящей аллокации. При закрытии использованную память обнуляют; пул возвращают в кэш либо освобождают, если кэш полон. Сегменты закрытой арены остаются недоступными. Крупные запросы и неподходящее выравнивание используют обычный путь выделения памяти.

Оптимизация работает и с виртуальными потоками: пул берётся у несущего потока и затем принадлежит арене. Переписывать вызовы API не требуется. Выигрыш в JMH измерен для маленьких аллокаций; ускорение всего приложения зависит от его нагрузки.

Устройство пулов и результаты замеров
Inside.java Making Arena.ofConfined() Even Cheaper in JDK 28 - Inside.java Pooled confined arenas provide a significant performance improvement for short-lived native allocations.
More from @a_cup_of_java
  1. Oct 8, 2026JDK 28: простой API для чтения и создания JSON Для JDK 28 интегрировали JEP 540: модуль jd…
  2. Oct 8, 2026Развёрнутое пояснение: 1. При построении дерева зависимостей Maven обнаруживает core:1.4 ч…
  3. Oct 8, 2026Post #8669
  4. Oct 7, 2026Почему нагрузочный тест в одной JVM может скрыть задержки GC Если генератор запросов работ…
  5. Oct 6, 2026Почему JNI-ссылки могут привести к падению JVM JNI отдаёт нативному коду дескриптор Java-о…
  6. Oct 6, 2026Spring переводит патч-релизы на единый Patch Thursday Регулярные патч-релизы проектов Spri…
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 →