Увеличение на 1 или 2: скорость цикла

#processing-efficiency

#эффективность обработки

Вопрос:

Я самостоятельно изучаю встроенное кодирование, и в видео, которое я смотрел, говорилось, что вы могли бы выполнять цикл быстрее, если бы выполняли два приращения за 1 цикл, а затем последнее приращение вне цикла, поскольку это позволило бы реже проверять условие while.

Итак, мой вопрос в том, было бы быстрее всегда увеличивать на 2, а затем вычитать или добавлять 1 в конце, если вы превышаете свою сумму.

Пример: Допустим, я хочу выполнить метод, который повторяется (т. Е. приблизить минимальное значение функции чем-то вроде метода Ньютона) Вместо того, чтобы использовать метод Ньютона один раз за цикл, мы делаем это дважды за цикл. И давайте предположим, что мы хотим повторить это 21 раз, потому что мы смогли вычислить, что наш метод должен сходиться достаточно близко примерно на такое количество итераций. Поэтому мы выполняем цикл 10 раз, делая это дважды за цикл, затем последний раз вне цикла для завершения.

Следующий вопрос будет заключаться в предположении, что это масштабируемо? т. Е. (n 1) раз за цикл > (n) раз за цикл один вне цикла

Комментарии:

1. Будет ли эта эффективность также работать для динамического кодирования. Т.Е. допустим, я создаю свои циклы while следующим образом: while(counter < int (array.size() / 2)):

2. Взгляните на устройство Даффа .