Есть ли какие-либо преимущества в производительности при использовании else {} по сравнению с постоянным присваиванием переменной и изменением только при выполнении условия? - PullRequest
1 голос
/ 09 ноября 2011

Извините за плохой титул.

Возьмите эти случаи:

Случай 1:

a = true;
if (b)
{
    a = false
}

Случай 2:

if (b)
{
    a = false
}
else
{
    a = true
}

Есть ли разница в производительности в этих случаях?

Ответы [ 3 ]

3 голосов
/ 09 ноября 2011

Возможно, вам следует попытаться указать язык / компилятор / время выполнения.

Короче говоря, нет: в большинстве случаев оптимизирующий компилятор устраняет разницу.

1 голос
/ 09 ноября 2011

Не имеет значения, какая из них быстрее, потому что это микрооптимизации, которые вообще не влияют на время выполнения (за исключением некоторых ситуаций) и потому что «преждевременная оптимизация - корень всех зол».Вы должны приложить все свои усилия для оптимизации алгоритма, а не для их четкости.
Как сказал @jalf, хороший компилятор скомпилирует их с точно таким же кодом, но если вы выполняете свой код на древнем процессоре, лучшим будетпервый, потому что он требует бренда меньше, чем другой.

0 голосов
/ 09 ноября 2011

Обычно это зависит от того, какой компилятор вы используете и какие параметры передаются ему. Определенно возможно оптимизировать такие условия с помощью анализа потока данных (т. Е. анализ переменных в реальном времени ), который способен выполнять большинство современных компиляторов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...