Производительность JNI: правда или миф?

212
14 октября 2017, 17:17

С учебы мне говорят то, что JNI это c++. И по скорости выполнения он превосходит Java. Но капаюсь я в нём и, как оказалось, вызов JNI это очень трудаемкая задача. И она требует до 12 проходов (шагов). Стоит ли вообще его использовать? И есть ли конкретные случаи когда он в Java так необходим?

Answer 1

Прямо с сайта Oracle:

Примеры, когда следует использовать JNI:

  1. Стандартная библиотека JAVA не поддерживает платформенно-специфические возможности, требуемые конкретным приложением.

  2. У вас уже есть библиотека, написанная на другом языке, и вы хотите использовать ее в JAVA.

  3. Вы хотите реализовать некоторые участки кода, критичные к скорости исполнения, на языке более низкого уровня типа Ассемблера.

Пример: граф обработки аудио/видео с фильтрами. Фильтр имеет интерфейс JAVA-объекта, а алгоритм конкретного фильтра реализован на C/ASM и подключается с помощью JNI.

READ ALSO
Как задать иконку приложения

Как задать иконку приложения

Как сделать так, чтобы вместо значка android была моя иконка?

189
SharedPreferences после перезапуска удаляет элементы

SharedPreferences после перезапуска удаляет элементы

У меня будильникиСоздаю новый будильник, сохраняю время в Set в SharedPreferences

213
Загрузить .obj с сервера ( как лучше сделать)

Загрузить .obj с сервера ( как лучше сделать)

На сервере есть 3d объекты, например, кувшин, ручка от кувшина и тд

166
C#: Перезапуск потока по его завершению

C#: Перезапуск потока по его завершению

Этот вопрос является продолжением темы Инициализация потока в конструкторе классаНа англоязычном StackOverflow я получил такое решение:

228