многоуровневые шаги, предоставленные Oracle:
Мне кажется, что ...
Я не думаю о том, что
Я думаю, что Я думаю, что - это сильна> . до на самом деле происходит. для внедрения.
Проблема с моим предположением состоит в том, что мое предположение ~, кажется, ~, чтобы против , предварительно установившиеся знания ... что JIT работает/оптимизирует , основанный на контексте . Подход .
Если метод усовершенствован в изоляции ... это было , потому что salt-site Первый .
Реальное различие было бы:
-это профилирование/оптимизация:
. /> сверху вниз? Элиминация также является частью C1 и C2, поскольку они могут возникнуть непосредственно на уровне байткода. PrettyPrint-Override ">void extremelyHotPath() {
obj.something();
obj2.something();
obj3.something();
obj4.something();
obj5.something();
obj6.something();
}
// ---> obj scope
final boolean flag = false;
void doSomething() {
if (flag) throw new IllegalStateException();
}
Итак, если JIT выполняет оптимизацию «сверху вниз» ... Устранение мертвого ветви будет сделано после Inlining.void extremelyHotPath() {
if (obj.flag) throw new IllegalStateException();
if (obj2.flag) throw new IllegalStateException();
if (obj3.flag) throw new IllegalStateException();
if (obj4.flag) throw new IllegalStateException();
if (obj5.flag) throw new IllegalStateException();
if (obj6.flag) throw new IllegalStateException();
}
Подробнее здесь: https://stackoverflow.com/questions/796 ... tion-occur