Разветвляется ли новый процесс из вызова JNI - PullRequest
4 голосов
/ 14 сентября 2010

Я пытаюсь вызвать C API из моей Java-программы, используя JNI. Может кто-нибудь сказать мне, вызовет ли вызов C API внутренний процесс для внутреннего процесса? ... Мне это нужно, потому что мои параллельные транзакции будут очень большими, так что, если новый процесс будет разветвлен, тогда будет много новых процессов для каждой транзакции.

1 Ответ

3 голосов
/ 14 сентября 2010

Преимущество использования JNI состоит в том, что и вызывающая программа, и вызываемая программа выполняются в одном и том же процессе (задании), в то время как другие методы запускают новый процесс (задание).Это делает вызовы JNI быстрее во время запуска и менее ресурсоемким.Однако, поскольку Java-приложения выполняются в независимом от технологии машинном интерфейсе (TIMI), а собственные методы пользователя требуют для запуска адресного пространства пользователя, сначала требуются некоторые накладные расходы для создания пользовательской среды, которая использует 16-байтовые адресные указатели вместо 8-байтовыхуказатели, используемые ниже TIMI.Это просто означает, что ваши причины использования JNI должны основываться не только на производительности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...