Оптимизирует ли компилятор Java (javac по умолчанию, включенный в JDK1.6.0_21) код, чтобы предотвратить повторный вызов одного и того же метода с одними и теми же аргументами? Если бы я написал этот код:
Код: Выделить всё
public class FooBar {
public static void main(String[] args) {
foo(bar);
foo(bar);
foo(bar);
}
}
Метод foo(bar) будет выполняться только один раз? Если да, то есть ли способ предотвратить эту оптимизацию? (Я пытаюсь сравнить время выполнения двух алгоритмов, одного итерационного и одного сравнительного, и хочу вызвать их несколько раз, чтобы получить репрезентативную выборку)
Любой понимание было бы высоко оценено; Я довел эту проблему до безумия (мне казалось, что мой компьютер какое-то время работал безумно быстро, поэтому я продолжал добавлять вызовы методов, пока не получил ошибку «Слишком большой код» в 43671 строке).
Подробнее здесь:
https://stackoverflow.com/questions/338 ... thod-calls