Эффективные ли побитовые операции в Java?

313
11 июня 2017, 17:06

Всем привет, Возник вопрос по битовым операциям в Java. Если брать нативные языки на подобие "с++" или "С" то там понятен выиграш в производительности напрямую игратся с регистрами, но если брать язык где все крутится на виртуалке JVM не совсем понятно в чем мы можем выиграть в производительности и выиграем ли вообще??

Как работают битовые операции под капотом JVM? Или в джава просто реализованы побитовые операции для лучшей переносимости тех же алгоритмов например с плюсов или си?

И в каких рельных случаях в java мире нам будет интересно применять на практике битовіе операции?

Answer 1

в чем мы можем выиграть в производительности

В производительности перед операциями с аналогичными результатами без применения битовых операций. Если вы думаете, что JVM делает всё медленнее, то ведь не только битовые операции страдают, верно?

в каких рельных случаях в java мире нам будет интересно применять на практике битовіе операции?

В тех же, что и в остальном мире

Если брать нативные языки на подобие "с++" или "С" то там понятен выиграш в производительности напрямую игратся с регистрами, но если брать язык где все крутится на виртуалке JVM

JVM - это не интерпретатор, это машина, транслирующая java-байткод в машинный код, соответствующий спецификации. В результате битовых операций будут вызываться ровно те же инструкции процессора, что и на ассемблере. Конкретно в самой битовой операции никакой потери производительности нет, основной "замедлитель" относительно условного си - это наличие сборки мусора и присущих stop-the-world пауз.

READ ALSO
Как сделать Parallax анимацию

Как сделать Parallax анимацию

Хочу сделать анимацию вроде той, какая на гифке внизу, но не для ViewPager-а, а для замещения одного View другим

212
обозначение многоугольника [требует правки]

обозначение многоугольника [требует правки]

Как Java обозначает многоугольник?

358
баг RecicleView

баг RecicleView

При инициализации RecicleView и загрузки значений в адаптер создается такой вид

292
Обработка fbx файла в java (opengl)

Обработка fbx файла в java (opengl)

Где индексы нормалей& (в коде у меня есть класс face который к каждой точке приминает по 1 индексу: вершин, текстур и нормалейэто из obj loader)

294