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