Возможный дубликат:
Можно ли сказать предсказателю ветвления, насколько вероятно, что он последует за ветвью?
Итак, если предсказание ветвлений играет такую большую роль («Предикторы ветвлений играют решающую роль в достижении высокой эффективной производительности во многих современных конвейерных архитектурах микропроцессоров, таких как x86». wiki), имеет смысл, что должен быть способ оптимизировать и помочь этому, не так ли?
Я задам свой вопрос прямо:
Можете ли вы сказать предсказателю ветвления, какой маршрут вы, скорее всего, выберете?
Приведу пример:
Моя программа каждый раз при загрузке проверяет, запускает ли ее пользователь впервые. Скорее всего, кэшировать следует ветку с пометкой «это не в первый раз».
В этом примере это не имеет большого значения, и, возможно, алгоритмы могут определить, какой маршрут выбрать, но в сложных приложениях с большим количеством ветвей я не уверен, что алгоритмы получат 10 баллов из 10.
Можем ли мы как-то это оптимизировать? может быть, пометить ветку для кеширования?
Кстати, я прошу в образовательных целях, а может, когда-нибудь для критичных ко времени программ.