Что касается многоуровневой последовательности компиляции JVM, происходит ли изолированная оптимизация метода перед внедJAVA

Программисты JAVA общаются здесь
Anonymous
Что касается многоуровневой последовательности компиляции JVM, происходит ли изолированная оптимизация метода перед внед

Сообщение Anonymous »

Многоуровневыми шагами, предоставленными Oracle:

Мне кажется, что ... ​​ Я не могу принять вызов (я не могу принять на основе. Контекст), до того, как на самом деле произойдет инлингация. происходит на уровне метода, который в конечном итоге превращается в изолированные оптимизации, прежде чем иметь право на внедрение. Было бы, по крайней мере, некоторые вещи, которые могут быть оптимизированы без необходимости просмотра межметодного взаимодействия.
Если метод усовершенствован в изоляции, это было потому, что навес для вызовов потребовал его первым.

-это Profiling/optuizing:

​​ /> сверху вниз? < /li>
или снизу вверх? Но, возможно, оптимизация, такие как устранение мертвой ветви, также является частью C1 и C2, поскольку они могут возникнуть непосредственно на уровне байт-кода. < /P>
путем инлин, я имею в виду фактическую вставку тела метода, а не «прямое вызов», которая была бы классифицирована как девиртуализация, но не привязанность Pre-se. Class = "Lang-Java 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 выполняет оптимизацию «сверху вниз» ... Устранение условного постоянного распространения/устранения мертвого кода будет выполнена после внедрения.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

Вернуться в «JAVA»