java имеет аргумент -XX:MaxInlineLevel (со значением по умолчанию 9), который управляет максимальным количеством вложенных вызовов в строку. Почему существует такой предел? Почему не обычные эвристики, основанные на частоте и размере кода, достаточные для того, чтобы JVM сама решала, насколько глубоко встроена?
(это вызвано JitWatch, показывающим, что глубоко вложенный вызов Guava checkArgument не был встроен из-за глубины)