
Каждая новая реплика запускает то же приложение, но JIT снова с нуля ищет горячие методы, собирает профиль и компилирует код.
Казалось бы, пусть первая JVM сохранит результат, а остальные его заберут. Но машинный код JIT зависит от состояния конкретного процесса. От иерархии классов, загруженных реализаций и реального трафика.
Чтобы перенести один метод, нужно быстро проверить тысячи предположений. Причём даже полностью корректный код может оказаться медленным для другой реплики.
В статье разбираемся, почему поделиться результатами JIT гораздо сложнее, чем просто положить их в кеш.
Читать далее
