RU

Одно лишнее if — и объект уезжает в кучу: как C2 решает, каким аллокациям не быть

Пара new в горячем методе может вообще не попасть в кучу — а после безобидного if внезапно вернуть аллокации обратно. Разби…

JavaJVMHotSpotC2Escape Analysisскалярная заменаJIT-компиляцияаллокации памятиоптимизация производительностиJMH
Habr
RU

Приложение простояло 918 мс, а сборщик мусора отработал за одну: разбираемся, куда ушло остальное

Секундная пауза в Java‑приложении легко выглядит как проблема сборщика мусора, хотя сам GC может отработать за миллисекунду. Разберём…

JavaJVMточки безопасностиsafepointсборщик мусорапаузы JVMпрофилирование Javaasync-profilerJFRпроизводительность приложений
Habr
RU

JDK 27 Compact Object Headers: как сбросить до 30% кучи без кроссфита и жестких диет

Каждый Java-объект в HotSpot начинается со служебного заголовка размером 12 байт. В JDK 27 по умолчанию он сжимается до 8 — это JEP 534, финальный ш…

JavaJVMHotSpotOpenJDKJDK 27JEP 534Compact Object HeadersProject LilliputGCОптимизация памяти
Habr
RU

async‑profiler в production: CPU, аллокации, lock contention и чтение flame graph

Профилирование Java‑приложений в production часто упирается не в отсутствие инструментов, а в их ограничения: CPU горит в&n…

async-profilerJavaJVMпрофилированиеflame graphпроизводительностьаллокациимногопоточностьlock contentionlatency
Habr
RU

Сравнение моделей конкурентности JVM языков: Нужен ли еще ThreadPool после coroutines, ZIO и Virtual Threads?

В последней части про модели конкурентности JVM языков мы сравним разные подходы друг с другом. И ответим на вопрос “А зачем теперь тред пулы, если…

JavaJVMKotlinClojureZIOcoroutinesvirtual threadsthread poolsProject Loomconcurrency
Habr
RU

Сравнение моделей конкурентности JVM языков: Треды, Пулы и Structured Concurrency

Вы пробовали что-нибудь кроме new Thread() ? Конечно пробовали: Future ! И всё ?! Разберемся с разными моделями конкурентности в Java, Kotlin, Scala…

JavaJVMмногопоточностьThreadThread PoolExecutorServiceVirtual ThreadsProject LoomStructured ConcurrencyBlocking IO
Habr