JIT-оптимизация



Java-код обрабатывается с помощью JIT-компиляции: сначала транслируется в платформонезависимый байт-код, а уже после этого в машинный код. При этом оптимизируется все, что возможно, и разработчик может помочь компилятору создать максимально эффективную программу.



В качестве примера взглянем на две простые операции:

// 1

n += 2 * i * i;



// 2

n += 2 * (i * i);



Измерим время выполнения каждой из них. Запустив код с картинки несколько раз, получим подобные цифры, отображающие время выполнения:



2 * (i * i) | 2 * i * i

0.5183738 | 0.6246434

0.5298337 | 0.6049722

0.5308647 | 0.6603363

0.5133458 | 0.6243328

0.5003011 | 0.6541802



Закономерность очевидна: группировка переменных с помощью скобок ускоряет работу программы. Это происходит из-за генерации более эффективного байт-кода при умножении одинаковых значений.



Подробнее об этом эксперименте вы можете почитать здесь.