JIT делает оптимизации основанные на предположениях (speculative optimizations): "этот метод всегда вызывается с int, не float". Если предположение нарушается — JIT делает deoptimization: выбрасывает скомпилированный код и возвращается к интерпретатору. Частая причина: новый подтип класса загружается и ломает monomorphic inline cache. Deoptimization — дорогая, серия deopt может замедлить приложение. -XX:+PrintDeoptimization для диагностики.
Что такое deoptimization в JIT и когда она происходит?
Senior
157 просмотровAFK Offer AI
Что такое starvation потока?