これは設計上の問題です。
私は、CPU を集中的に使用するアルゴリズムを実装する Web サービスを作成することを計画していました。私が解決しようとしている問題は、python、perl、java などの高水準言語を使用すると、Web サービスを簡単に作成できるようになることです。C、C++ などの低レベル言語では、コードのパフォーマンスを微調整できます。
そこで私は、2 つの言語の橋渡しをするために何ができるかを考えていました。私が思いついたオプションは次のとおりです。
言語固有のバインディング
perl-xs または python の ctypes/loadlibrary または Java の JNI などを使用します。利点は、同じプロセスで実行できる拡張機能を作成できることです。母国語の型から C への変換とその逆の変換には、わずかなオーバーヘッドがあります。
別のデーモンを実装する
thrift / avro などを使用して、C/C++ コードを実行する別のデーモンを用意します。利点は、高水準言語から疎結合されていることです。高級言語をすぐに置き換えることができます。欠点は、シリアル化とローカル UNIX ドメイン ソケットのオーバーヘッドが、同じアドレス空間でコードを実行するよりも高くなる可能性があることです (前のオプションによって提供されます)。
皆さんはどう思いますか?