私はJavaで画像処理アプリケーションを開発してきましたが、最近VALAに興味を持っています。その理由は、アプリケーションのパフォーマンスを向上させることができると信じているためです(JavaでC / C ++ブリッジを使用するとパフォーマンスが低下するように思われるため、主にC / C ++ライブラリとの相互接続に懸念があります)。
背景(私が知っていること):
- VALAはCコードに変換されてから、ネイティブマシンコードにコンパイルされます。
- AOT(Java / Mono C#)は、ネイティブマシンコードも生成できます(VMを使用する代わりに、ランタイムバンドルが必要です)。
- 場合によっては、VMを使用すると、ネイティブマシンコードよりもさらに高速になることがあります(JITコンパイラを介して最適化できるため)。
- 消耗品のC/C ++ライブラリは、VALAを使用して作成できます。
私の頭の周りに何かが起こっていて、答えが見つかりません:
- C / C ++の消耗品ライブラリはAOTコンパイラを使用して作成できますか?(私はそうは思わない)。
- 生成されたAOTバイナリには、まだブリッジのパフォーマンスの問題がありますか?(私はそうだと思います)。
- VALAでC/C ++ライブラリを呼び出すと、Cから呼び出すのと同じパフォーマンスが得られますか?(そうだと思います)。
何か洞察はありますか?