JIT 最適化について質問があります。簡単なコードをコンパイルしました:
class btest
{
static final boolean flag=false;
public final void foo(int x)
{
if(flag) {a=x; b=x*2; c=x*3;}
}
public void bar(int y) {foo(y);}
int a,b,c;
};
flag
に設定されてfalse
いるためfoo()
、空のコードに完全にコンパイルされます-単に戻ります。しかし、bar()
まだそれを呼び出します。
JITがこの呼び出しを排除する可能性はありますか? flag
外部クラスに属しているかどうかは重要ですか?
よろしく