JIT убирает код который никогда не выполняется или результат которого не используется. Например, if (false) {...} уберётся полностью. Это один из бонусов method inlining — после инлайна JIT видит весь контекст и убирает недостижимые ветки. Нельзя полагаться для измерений: в микробенчмарках JIT может убрать весь тестируемый код если результат не используется. Поэтому JMH (Java Microbenchmark Harness) использует Blackhole чтобы потреблять результат.
Как dead code elimination работает в JIT и можно ли на неё полагаться?
Senior
179 просмотровAFK Offer AI
Что такое Spring Boot Admin и что он показывает?