Страницы

Поиск по вопросам

пятница, 26 апреля 2019 г.

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

Если брать нативные языки на подобие "C++" или "C", то там понятен выигрыш в производительности напрямую играться с регистрами, но если брать язык, где все крутится на виртуалке JVM - не совсем понятно, в чем мы можем выиграть в производительности и выиграем ли вообще??
Как работают битовые операции под капотом JVM? Или в джава просто реализованы побитовые операции для лучшей переносимости тех же алгоритмов например с плюсов или си?
И в каких реальных случаях в java мире нам будет интересно применять на практике битовые операции?


Ответ

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

Комментариев нет:

Отправить комментарий