Другие языки программирования и технологии

Почему использование if в коде тормозит работу программы?

Это связано с конвейером операций в процессоре. Вообще if-ы если не запретить как goto, то необходимо их использование сокращать по мере возможностей
Почему? А какую последовательность команд после ветвления загружать? Вот вся надежда нв предсказания, Intel всё-таки не Эльбрус, не имеет параллельных конвейеров
ВБ
Вячеслав Бандыло
76 473
Лучший ответ
Ну так!
Если бы не было IF, не было бы и лишних операторов Ассемблера cmp, je, jne, jmp - значит комп бы не затратил на них лишние наносекунды )))
Nikolaj Zagdais
Nikolaj Zagdais
71 463
Любой оператор будет тормозить выполнение
ты не поверишь, но каждое следующее действие в программе тормозит всю программу, потому как на выполнение этого действия требуется время...

но куда ты без IF дешешься?
без велвлений ты можешь лишь написать программу, которая проделывает исключительно один вариант последовательности операций.
нахрена такая программа нужна?
Андрей ..... в java if вроде бы заменяется "?"
Ну как бы все операторы в той или иной мере тормозят работу программы! Представьте как быстро работает программа, которая ничего не делает!))) А по сути нужно разбираться о чем шла речь. Может подразумевалось что if в цикле притормаживает. Ну так да, как опять же и любой оператор. Поэтому для более быстрого выполнения кода, стараются все лишнее выкинуть из цикла. И если можно обойтись без условия в цикле, то и обходятся!
Каждый раз спотыкается конвейер.
Artem Tivikov
Artem Tivikov
8 679
Ну вот например. Подошел Добрыня к камню, написано направо пойдешь коня потеряешь, налево пойдешь, ..И так далее. Так и процессор. Задумывается куда дальше ветвить алгоритм.
Murodali Xolbutaev
Murodali Xolbutaev
8 520
Вместо ветвлений используй полиморфизм.
Ренат Латыпов
Ренат Латыпов
3 300