Что такое deoptimization в JIT и когда она происходит?

Senior
157 просмотров
AFK Offer AI

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

Следующий вопрос

Что такое starvation потока?