Erlang 互操作性指南讨论了不同的互操作性机制。以下是我的结论:
端口和 Erl_Interface 程序:操作系统调度,限制可扩展性。
端口驱动程序:很危险,因为端口驱动程序崩溃也会导致模拟器崩溃。
C 节点:节点服务器需要像 Erlang 应用程序一样扩展,以避免牺牲可扩展性。
NIF:Loic很好地总结了它们。
一些人提倡使用 OpenCL,基本上将资源匮乏的计算委托给 GPU,同时让 Erlang 模拟器拥有 CPU。这听起来棒极了,但是你需要你的服务器有一个合适的 GPU。
使用 JInterface 并与为每个请求生成一个线程的 Java 进程通信可能是一种选择。
那么有没有人遇到过经过实践测试并证明效果很好的解决方案?