В этой записи блога утверждается, что из-за механизмов самоанализа, используемых JNA, он будет значительно медленнее, чем JNI. Я подозреваю, что NativeCall будет использовать аналогичные механизмы и, следовательно, работать аналогичным образом.
Однако вам, вероятно, следует провести тестирование на основе конкретных объектов, на которые вы ссылаетесь, и / или маршалинг между Java и C.
Я бы поддержал рекомендацию SWIG . Это делает жизнь особенно простой (легкой) для интерфейса Java / C.