Я написал небольшую статическую функцию JNI длиной всего 5 инструкций. Может ли JVM встроить этот код в тело метода, который его часто вызывает, или он всегда будет генерировать инструкцию call
в методе JITed?
Например:
public class SomeClass {
private static native long func();
public void doLoop() {
for(int i = 0; i < 0xFFFFFF; i++) {
func();
}
}
public static void main(String[] args) {
for(int i = 0; i < 0xFFFFFF; i++) {
doLoop();
}
}
}
Может ли JVM встроить код func
в doLoop
, или он просто скомпилирует его как call func