消息传递是Erlang的核心 - “消息传递进程”。
但是,当涉及到erlang时,虚拟机的概念仍然模糊不清。
任何帮助?
答案 0 :(得分:11)
使用虚拟机有几个原因:
演员
Erlang试图比运行它的操作系统更聪明。创建OS流程既缓慢又昂贵。 Erlang有自己的轻量级进程,管理它们的调度程序以及在核心之间移动它们的方法。 scheduling是先发制人的,它提供了软实时属性(没有虚拟机就很难)
内存管理
操作系统中的内存分配可能很慢,这就是Erlang可以预先分配内存并在内部进行管理的原因。它与不可变的数据结构和garbage collecting。
指令集
当您有预定义的指令集时,更容易进行优化。您还可以在VM上创建其他语言,例如Elixir或Lisp Flavoured Erlang。
可能还有很多其他原因,但是我从头脑中迅速写下了这些原因。 Erlang的主要目的是构建容错系统(可扩展性只是容错的副产品Joe Armstrong explained)。最好将用户“限制”到虚拟机,这样可以轻松控制执行并为用户提供容错功能。