Erlang Interoperability guide では、さまざまな相互運用メカニズムについて説明しています。ここに私の結論があります:
Ports および Erl_Interface プログラム: OS によってスケジュールされ、スケーラビリティが制限されます。
ポート ドライバー: ポート ドライバーがクラッシュするとエミュレーターもダウンするため、危険です。
C ノード: ノード サーバーは、スケーラビリティの犠牲を避けるために、Erlang アプリと同様にスケーリングする必要があります。
NIF: Loicはそれらをうまくまとめています。
ErlangエミュレーターにCPUを所有させながら、基本的にリソースを大量に消費する計算をGPUに委譲するOpenCLの使用を支持する人もいます。これは素晴らしいことのように思えますが、サーバーに適切な GPU を搭載する必要があります。
JInterface を使用し、すべての要求に対してスレッドを生成する Java プロセスと通信することは、オプションかもしれません。
それでは、実際にテストされ、うまく機能することが判明したソリューションに出くわした人はいますか?