У меня есть цикл for, который работает 4096 раз, и он должен быть как можно быстрее. Производительность здесь действительно важна. В настоящее время я использую методы getter внутри цикла, которые просто возвращают значения или объекты из полей, которые не изменяются во время цикла.Java использует getter in for loop или создает локальную переменную?
Пример:
for (;;) {
doSomething(example.getValue());
}
Есть ли накладные расходы с помощью методов получения? Быстро ли это происходит следующим образом?
Пример:
Object object = example.getValue();
for (;;) {
doSomething(object);
}
Если да, то, что верно и для доступа к общественным поля как example.value
?
Редактировать: Я не использую System.out.println()
внутри цикла.
Редактировать: Некоторые поля не являются final
. Нет полей volatile
, а метод (геттер) не равен synchronized
.
Сохранение вывода в локальной строке будет быстрее, чем геттер или разыменование объекта. Но это измеряется в «teensy» – Jamie