Прогнозирование филиала: делает ли избегание ветви «else» для простых операций быстрее код (пример Java)?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Прогнозирование филиала: делает ли избегание ветви «else» для простых операций быстрее код (пример Java)?

Сообщение Anonymous »

Параметры 1: < /p>

boolean isFirst = true;
for (CardType cardType : cardTypes) {
if (!isFirst) {
descriptionBuilder.append(" or ");
} else {
isFirst = false;
}
//other code not relevant to this theoretical question
}
< /code>

опция 2: < /p>

boolean isFirst = true;
for (CardType cardType : cardTypes) {
if (!isFirst) {
descriptionBuilder.append(" or ");
}
isFirst = false;
//other code not relevant to this theoretical question
}
< /code>

мой анализ < /strong>: оба кода имеют одинаковую семантическую. < /p>

1 -й код) i «Не уверен, есть ли этот код два ветви (с точки зрения предиктора филиала) или одна ветвь. Я изучал http://en.wikipedia.org/wiki/x86_instruction_listings, но не смог понять, что есть инструкция x86, что -то вроде «если бы предыдущее значение было ложным прыжком», чтобы избежать двух предсказаний ветви (очень плохо ) < /p>

2 -й код), скорее всего, всегда будет выполнять простое перемещение (для регистрации или элемента, скорее всего, уже в кэше), что относительно недорого (максимально несколько циклов)

Итак, я считаю, что, если процессор декодирует в инструкции микрокода, не может сделать что -то умное или x86 Br />
Я понимаю, что это чисто теоретический вопрос, поскольку на практике эта ветвь может сделать приложение на 0,000000002% быстрее или что -то в этом роде. < /p>

Я что -то пропустил? Вопрос < /p>

Edit2: Вопрос о архитектуре Intel для прогнозирования филиалов (Pentium и более новых процессоров).

Подробнее здесь: https://stackoverflow.com/questions/283 ... makes-code
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»