Новая AOT-кэш-функция Java в сыром состоянии: бесплатное ускорение старта с бесплатными крашами

Java's new AOT cache feature is in a rough state

AOT-кэш в JDK обещает ускорить запуск Java-приложений без изменений в коде: тренировочный прогон записывает загруженные классы и профили методов, а при старте JVM пропускает инициализацию. На практике в XPipe выяснили, что кэш генерирует адаптеры с учётом CPU-фич машины сборки — и на системах без AVX-512 JVM падает с SIGILL. Отключить это можно недокументированным флагом -XX:-AOTAdapterCaching, который по умолчанию «выключен, кроме случая по умолчанию».

В лучшем случае AOT-кэш просто не применяется из-за несовместимостей, и вы ничего не выигрываете. В худшем случае, если не быть осторожным, ваша JVM неожиданно падает. То есть, по сути, бесплатное ускорение старта, но только при определённых условиях, и с бесплатными крашами в комплекте.

Ещё за этот день

2026-10-29