Pull to refresh

Comments 4

> В состав платформы Android входит фреймворк Bouncycastle, предназначенный для выполнения криптоопераций, например, шифрования или проверки цифровой подписи. Отличительной чертой данного фреймворка является то, что он целиком написан на Java, без применения нативного кода. Это увеличивает его переносимость, однако значительно уменьшает быстродействие.

Откуда такие далеко идущие выводы, пока не проведено тестирование? Почему если Java, то это де-факто медленно?! А когда тесты вычислительных алгоритмов на Java показывают аналогичные результаты с кодом на C++, то принято эти факты почему-то замалчивать.
Думаю, что тут дело в том, что на Си можно ассемблерные вставки делать, а на Java — не уверен.
И потом выполение криптоопераций — это очень высокая нагрузка именно на процессор в плане вычислений, а JVM — это всё же виртуальная машина, которая тоже нуждается в ресурсах прцессора.
Т.е. при прочих равных такие вычисления с использованием виртуальной машины будут медленнее, чем нативные. Насколько медленнее — не скажу. Быть может, что всего лишь на 0.05%, но медленнее.
А когда тесты вычислительных алгоритмов на Java показывают аналогичные результаты с кодом на C++

И кстати, вы сами говорите именно про алгоритмы, а не про нагрузку.
Опять же те тесты, про которые вы говорите… Надо смотреть уже на саму их реализацию. Что-то мне подсказывает, что один и тот же алгоритм, просто написанный на С++ и на Java, будет быстрее именно на C++. Если же заморочиться именно на оптимизации алгоритма под Java и использовать по максимуму все плюшки Java, то конечно алгоритм на Java будет шустрее, чем неоптимизированный на C++.

К чему я веду? К тому, что не надо смотреть на эти тесты. Они синтетические и непоказательные. Для написания кода разработчик должен пользоваться тем инструментом, который он знает, любит и умеет с ним обращаться. Не будете же вы салат резать ятаганом?
А еще выбор языка сильно зависит от задачи. Ведь если вам действительно нужна именно производительность, то тогда может взглянуть в сторону ассемблера, а не Java? Или в сторону новых алгоритмов…
Sign up to leave a comment.