В общем, он предлагает нет преимущества в производительности, чтобы свернуть цикл, как описано.
Компиляторы иногда сворачивают такие циклы, но обычно непредсказуемым образом.
На определенных языках или на определенных платформах вы можете ускорить циклы в целом:
- считая вниз
- делает функцию, вызываемую в теле, «встроенной», или содержит код в теле цикла, а не отдельную функцию
- настройка компилятора - обычно с помощью параметров командной строки - для «разворачивания» циклов и удаления указателей на фреймы и тому подобное
Но во всех случаях вы должны профилировать свой код, чтобы увидеть, что такие усилия оправданы.
Вообще-то, по моему опыту, во вложенных циклах, подобных этому, преобладают:
- контейнеры; по возможности избегайте проверки бокса и границ, и вы знаете, что вы в безопасности
- стоимость вызова других методов в них; используйте 'inline', если это доступно
- трубопроводные киоски из-за плохой привязки; переставьте вашу память, если это возможно
- трубоукладчики по вторым условиям; меньше ifs и косвенных ссылок лучше
Но это может быть неприменимо для вашей проблемной области и платформы. Профиль !