Вопрос 1
В Java смещение в несколько раз дороже, чем использование одного оператора для сдвига на одно и то же число?
Например, это
int x = 5;
x = x << 16;
Быстрее, чем
int x = 5;
for (int i=0; i<16; ++i) {
x = x << 1;
}
Далее, что насчет
int x = 5;
for (int i=0; i<16; ++i) {
x = x*2;
}
Изменить: какова точная производительность «x ‹‹ 16»? Это та же скорость, что и "x ‹‹ 1"?
Вопрос №2
Есть ли онлайн-ресурс, который я могу использовать для определения производительности различных побитовых операций в Java, чтобы мне не приходилось тратить время пользователей StackOverflow? :-)
x << 1
точно такой же, какx << anything else
. - person Marko Topolnik   schedule 25.04.2012javap -c YourClass
может помочь в следующий раз, когда у вас возникнут сомнения. - person soulcheck   schedule 25.04.2012ishl
, будет переведен как минимум на то же количество инструкций, что и одиночныйishl
) - person soulcheck   schedule 25.04.2012