Доступ к затратам производительности переменных поля другого объекта (местность ссылки)

Читая этот вопрос и этот ответ, я знаю, что доступ к полям будет стоить некоторой производительности в компиляторах 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 Пожалуйста, учитывайте как стоимость доступа, так и пропуск кэша.

0 ответов

Другие вопросы по тегам