1

この質問この回答を読むと、フィールドにアクセスすると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()同じことを行います。問題は、次の場合にどちらが (パフォーマンスの点で) 優れているかです。

  1. fooObjectプリミティブ型です
  2. fooObjectオブジェクトインスタンスです

PS アクセスコストとキャッシュミスの両方を考慮してください。

4

0 に答える 0