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