Производительность C++, поскольку, по сравнению с в то время как

В целом (или на основе Вашего опыта), там разница в производительности между для и циклы с условием продолжения?

Что, если они вдвойне/трижды вкладываются?

Векторизация (SSE), затронутый вариантом цикла в g ++ или компиляторы Intel?

Спасибо

12
задан Anycorn 21 May 2010 в 01:59
поделиться

5 ответов

Вот хорошая статья на эту тему.

16
ответ дан 2 December 2019 в 05:27
поделиться

им следует пренебречь. оптимизирующий компилятор должен сделать различие несуществующим.

0
ответ дан 2 December 2019 в 05:27
поделиться

В этом легко убедиться, взглянув на разборку. Для большинства циклов они будут одинаковыми, если вы выполняете ту же работу.

int i = 0;
while (i < 10)
   ++i;

то же самое, что и

for (int i = 0; i < 10; ++i)
   ;

Что касается вложенности, это действительно зависит от того, как вы ее настраиваете, но одни и те же настройки должны давать один и тот же код.

1
ответ дан 2 December 2019 в 05:27
поделиться

Ни один интеллектуальный компилятор не покажет разницу между ними. В любом случае, цикл for - это просто синтаксический сахар для определенной формы цикла while .

9
ответ дан 2 December 2019 в 05:27
поделиться

Должно быть нулевое различие, но проверьте, поскольку я видел действительно дрянные, более старые версии GCC создают разные коды ARM / Thumb между ними. Один оптимизировал сравнение после вычитания, чтобы установить нулевой флаг, тогда как другой этого не сделал. Был очень хромым.

Снова вложение не должно иметь значения. Не уверен в материалах SSE / векторизации, но опять же, я ожидаю, что разницы не будет.

1
ответ дан 2 December 2019 в 05:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: