2016-06-14 4 views
-5

вот код!О том, что инструкция else

код1:

if(false) { 
    //1000 lines of code 
} 
else { 
    //1 line of code 
} 

code2:

if(false) { 
    //1 line of code 
} 
else { 
    //1 line of code 
} 

, что будет время процесса выше двух кодов? Также попробуйте объяснить ...

+3

Игнорирование вариации в синтаксическом анализе: в основном то же самое для обработки, если предположить, что «1 строка кода» одинакова .... выполнить оценку для if, а затем выполнить эту 1 строку кода ... конечно, если эти 1 строки кода отличаются друг от друга, может потребоваться больше времени для оценки, чем другие –

+0

. Как долго длится строка? – Darren

+1

Почему бы вам не проверить его самостоятельно – Danijel

ответ

0

ОК, это очень хороший вопрос о производительности.

Короткий ответ: они будут работать с одинаковой скоростью. Почему

компилятор, когда он соответствует коду будет перевести его на mechine языка, который является связкой команд низкого процессора уровня в оперативной памяти

В if с одной линией, если условие ложно, компилятор спросит процессор для перехода на 1 строку это увеличит счетчик программ с одним, чтобы игнорировать блок if и вместо этого выполнить блок else. посмотрите накладные расходы - это всего лишь одна команда для увеличения счетчика программ.

program counter является регистр, который сохраняет какую линию вы выполняете

и в if с 1000 линии будет просто же просто увеличить счетчик программы с 1000 перепрыгнуть if блок для выполнения else блока. Одна операция - это то же самое.

thats it even with else то же самое, если условие true if блок будет выполнен, а затем перескочить блок else.

Смежные вопросы