現在、Java ネイティブの通信に JNA を使用していますが、その単純さに満足しています。ただし、パフォーマンスを最適化する必要があり、他のバインディングの使用を検討しています。
私の質問はこれです: Java ネイティブ通信のどの部分が「高価な」部分ですか? それらの間のデータの受け渡しですか?
別の言い方をしましょう。現在、私の JNA インターフェイスが呼び出している関数は Java にデータをまったく渡さず、関数はそれほど頻繁には呼び出されません。つまり、Java がライブラリ呼び出しを呼び出すと、ライブラリ呼び出しはしばらくの間独自の処理を行い、プリミティブ型を返します。そのような状況では、JNI/Swig/etc は JNA よりも速くなりますか?