Который является самым быстрым способом получить доступ к собственному коду от Java?

Это может быть вашей отправной точкой. Я публикую пример в Stackblitz . Я интерполирую, чтобы указать размер строки, используя PrimeNg. Я мог бы применить rowspan для таблицы HTML сейчас. Пожалуйста, отредактируйте его, чтобы импровизировать этот пример согласно требованиям.

Для будущих вопросов, пожалуйста, посетите Stackblitz, чтобы опубликовать рабочий пример.

9
задан Simon Nickerson 15 June 2011 в 10:00
поделиться

4 ответа

Swig также упрощает JNI.

С точки зрения скорости, я подозреваю, что будут небольшие отклонения - я настоятельно рекомендую вам выбрать звонок, который, как вы знаете, вы будете делать много, и сравнить все предлагаемые решения.

12
ответ дан 4 December 2019 в 08:02
поделиться

Довольно Несколько параметров влияют на производительность интерфейсов между языками программирования: на каком устройстве работает JVM, кто его разработал (если это не обычная Sun JVM), нужно ли вам вызывать код Java из нативного кода, модель многопоточности JVM в вашей операционной системе и то, насколько асинхронным будет нативный код ...

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

3
ответ дан 4 December 2019 в 08:02
поделиться

В этой записи блога утверждается, что из-за механизмов самоанализа, используемых JNA, это будет значительно медленнее, чем JNI. Я подозреваю, что NativeCall будет использовать аналогичные механизмы и, следовательно, работать аналогичным образом.

Однако вам, вероятно, следует проводить тесты на основе конкретных объектов, на которые вы ссылаетесь, и / или выполнять маршалинг между Java и C.

Я бы поддержал рекомендацию SWIG . Это делает жизнь особенно легкой (более легкой) для взаимодействия Java / C.

2
ответ дан 4 December 2019 в 08:02
поделиться

JNI - самый быстрый. JNA очень медленный по сравнению с JNI (издержки на вызовы, вероятно, на порядок), но это фантастическая библиотека, потому что она делает нативный доступ таким простым. JNA отлично подходит, если вам нужно время от времени вызывать какой-то нативный API. Если вам небезразлична производительность, я бы не стал использовать ее в каких-либо «плотных петлях».

Я не уверен, где NativeCall вписывается в спектр.

10
ответ дан 4 December 2019 в 08:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: