В целом (или на основе Вашего опыта), там разница в производительности между для и циклы с условием продолжения?
Что, если они вдвойне/трижды вкладываются?
Векторизация (SSE), затронутый вариантом цикла в g ++ или компиляторы Intel?
Спасибо
им следует пренебречь. оптимизирующий компилятор должен сделать различие несуществующим.
В этом легко убедиться, взглянув на разборку. Для большинства циклов они будут одинаковыми, если вы выполняете ту же работу.
int i = 0;
while (i < 10)
++i;
то же самое, что и
for (int i = 0; i < 10; ++i)
;
Что касается вложенности, это действительно зависит от того, как вы ее настраиваете, но одни и те же настройки должны давать один и тот же код.
Ни один интеллектуальный компилятор не покажет разницу между ними. В любом случае, цикл for
- это просто синтаксический сахар для определенной формы цикла while
.
Должно быть нулевое различие, но проверьте, поскольку я видел действительно дрянные, более старые версии GCC создают разные коды ARM / Thumb между ними. Один оптимизировал сравнение после вычитания, чтобы установить нулевой флаг, тогда как другой этого не сделал. Был очень хромым.
Снова вложение не должно иметь значения. Не уверен в материалах SSE / векторизации, но опять же, я ожидаю, что разницы не будет.