この質問とこの回答を読むと、フィールドにアクセスするとAOTコンパイラでパフォーマンスが低下することがわかります(JVMのおかげで忘れることができます)
このシナリオについて教えてください:
public class Foo
{
Object fooObject;
}
public class Bar
{
Foo foo;
Object fooObjectCopy = foo.fooObject; // fooObject replica of object foo (not a clone)
void barMethod1()
{
doSomething (fooObjectCopy);
}
void barMethod2()
{
doSomething (foo.fooObject);
}
}
と の両方barMethod1()
でbarMethod2()
同じことを行います。問題は、次の場合にどちらが (パフォーマンスの点で) 優れているかです。
fooObject
プリミティブ型ですfooObject
オブジェクトインスタンスです
PS アクセスコストとキャッシュミスの両方を考慮してください。