Современные процессоры используют довольно сложную цепочку условий, чтобы угадать , какая инструкция будет следовать условной ветви. Поскольку центральный процессор декодирует и обрабатывает каждую инструкцию параллельно со многими другими инструкциями, затраты на неправильное угадывание могут быть катастрофическими. Просто переупорядочивание тестов в ветке или даже кода, который идет непосредственно до или после, может изменить прогноз. К сожалению, нет простого способа предсказать, что будет работать лучше.
По этой причине единственный способ принимать обоснованные решения по оптимизации кода, связанного с процессором (как вы описываете), - это измерить, что на самом деле делает код, внести небольшие изменения и снова измерить, чтобы увидеть, было ли какое-либо улучшение.
Если вы действительно используете мягкое приложение реального времени, и оно использует 100% ЦП, это, вероятно, не означает, что вы должны пытаться сократить использование, но предоставить больше ЦП для его использования, потому что ввод опережает способность приложения идти в ногу. На самом деле масштабирование или уменьшение, вероятно, дешевле, чем повышение производительности кода, серверное оборудование обходится дешевле, чем время разработчиков.