Когда будет полезно динамическое предсказание ветвления?
Для статического предсказания ветвления всегда предполагается, что ветвление не занято, в то время как для динамического предсказания ветвления, если ветвление берется раньше, тогда более вероятно, что оно будет взято снова. Но я не могу придумать ситуацию, что это полезно? Какое приложение выиграет от этого? Почему бы просто не использовать статическое предсказание ветвлений?
1 ответ
Решение
boolean b = compute something;
:
for (int j=0; j<1000000; j++)
if (b) one statement;
else another statement;
if
будет вызывать условную ветвь с одинаковым полученным / не взятым результатом каждый раз, но это может варьироваться от одного прогона к следующему.
(Я знаю, что можно написать этот код немного лучше с if
управление парой циклов if-free, но здесь дело не в этом)