mik*_*ana 3 erlang elixir beam
我在Perl/Python/node中的背景和一些Ruby.我之前没有使用过BEAM VM语言.
在Perl/Python/Node/Ruby中,如果我想处理"较低级别"的任务 - 强烈的计算,需要访问线程,或者更常见的是,包装C库 - 我会用C语言写一些东西.Elixir/Erlang显然有Erlang进程形式的极大并行性和非常低的延迟,消除了大部分需求.
所以如果我有一个C库,最好是制作一个Elixir/Erlang包装器还是重新实现这个功能?
一个非常具体的例子:Elixir/Erlang的TLS使用OpenSSL,还是用BEAM语言实现?
在Erlang中实现事物的通常方法是首先在Erlang中实现它,然后测量它.如果效果不好,请先在Erlang中寻找改进.如果不是仍然不够好,改写C.您可以使用热键部分港口,更安全地或NIFS如果数据传输会杀了它.其背后的理由是Erlang(或Elixir)为编写简单,安全的代码提供了良好的环境.它提供了出色的异常处理和对可靠性的支持.您可以将Erlang视为用于编写服务器服务和容器的域特定语言,以处理并发任务并将负载分配给CPU,并以另一种语言的高性能小块代码执行.用Erlang/Elixir比其他语言实现的代码越少越好.
如果你认为二进制协议处理是低级别的,那么一定要尝试在Erlang中实现它,因为Erlang中的位操作语法真是太棒了.
是的,TLS主要是用Erlang(密钥处理,IO,...)编写的,其中包含C语言中的性能关键部分(哈希和加密算法).
一个非常好的建议是:始终衡量,不要指望.你甚至可以看到一个非常重要的解决方案,它在纯Erlang中比在C++中实现得更好.请参阅比较摩托罗拉电信软件的Cpp和Erlang.
| 归档时间: |
|
| 查看次数: |
420 次 |
| 最近记录: |