Рассмотрим класс Foo
.
public class Foo {
private double size;
public double getSize() {
return this.size; // Always O(1)
}
}
Foo
имеет свойство, называемое размером, к которому часто обращаются, но не модифицируются данным методом. Я всегда кэшировал свойство в переменной всякий раз, когда к нему обращались несколько раз в любом методе, потому что "кто-то мне так сказал", не задумываясь. то есть.
public void test(Foo foo) {
double size = foo.getSize(); // Cache it or not?
// size will be referenced in several places later on.
}
Стоит ли это, или излишний?
Если я не кэширую его, современные компиляторы достаточно умны, чтобы кэшировать их сами?