Большая часть процессорного времени в программах приходится на выполнение циклов, и здесь может достигаться самый значительный выигрыш от оптимизации.
Например, при выполнении цикла на Фортране 77 (считается наиболее мощным языком для вычислительных задач)
DO 1 I = M, N, L
..........
Тело цикла
..........
1 CONTINUE ,
как правило, производятся следующие шаги:
1. вычисление числа повторений K=(N-M+L)/L;
2. проверка его на нуль и если необходимо, то переход на шаг 3;
3. запоминание значения управляющей переменной I;
4. выполнение тела цикла;
5. уменьшение счетчика повторений К=К-1 и приращение управляющей переменной I=I+L;
6. проверка на окончание цикла К=0 (и если требуется, переход на шаг 3).
Видно, что шаги с 1 по 3 составляют затраты на инициализацию цикла, а шаги 5 и 6 - затраты на завершение цикла. При этом шаги с 3 по 6 циклически повторяются.
Поэтому иногда издержки на организацию цикла сравнимы с затратами на выполнение тела цикла или больше.
Примеры на Паскале – слева неоптимизированные, справа – оптимизированные.