Я уже писал про отличный блог Нитсана Вакарта, посвященный внутренностям JVM. Сегодня я хочу отметить ряд моментом в его заметке про инлайнинг методов.

В статье рассказывается, что такое инлайнинг, когда он работает и когда нет. Пишется что плюсами является ускорение работы, за счет появления у компилятора возможности более агрессивно оптимизировать код и снятия накладных расходов на вызов метода. К минусам относится увеличение размера исполняемого кода и в некоторых случаях уменьшение производительности из-за того, что компилятору приходится работать с большими частями кода.

Написано о опциях JVM -XX:+PrintInlining, -XX:+PrintCompilation которые позволяют узнать какие методы скомпилированы и заинлайнены.

В конце говорится о том, что итак сложный для понимания процесс превращения кода в инструкции для компьютера, становится экспоненциально сложнее с введением инлайнинга.