Отличается ли производительность в Java >> и >>> от правых операторов сдвига? - PullRequest
5 голосов
/ 26 марта 2010

Есть ли основания полагать, что операторы правого сдвига битов >> (со знаком) и >>> (без знака) в Java будут работать по-разному? Я не могу обнаружить разницу на моей машине.

Это чисто академический вопрос; я уверен, что это никогда не будет узким местом. Я знаю: лучше всего написать то, что вы имеете в виду прежде всего; используйте >> для деления на 2, например.

Я предполагаю, что все зависит от того, какие архитектуры имеют какие операции реализованы в виде инструкции.

1 Ответ

3 голосов
/ 27 марта 2010

Нет. Ваш компилятор переведет их в байт-код, а JVM интерпретирует байт-код для вашей архитектуры. Я думаю, можно с уверенностью предположить, что в вашей архитектуре есть набор команд, который включает обе операции, выполняемые за несколько тактов.

В любом случае, в поведении этих операторов есть разница, поэтому вы не можете просто поменять их местами.

...