为什么erlang需要虚拟机?

时间:2014-10-14 08:02:07

标签: erlang vm-implementation

消息传递是Erlang的核心 - “消息传递进程”。

但是,当涉及到erlang时,虚拟机的概念仍然模糊不清。

任何帮助?

1 个答案:

答案 0 :(得分:11)

使用虚拟机有几个原因:

  1. 演员

    Erlang试图比运行它的操作系统更聪明。创建OS流程既缓慢又昂贵。 Erlang有自己的轻量级进程,管理它们的调度程序以及在核心之间移动它们的方法。 scheduling是先发制人的,它提供了软实时属性(没有虚拟机就很难)

  2. 内存管理

    操作系统中的内存分配可能很慢,这就是Erlang可以预先分配内存并在内部进行管理的原因。它与不可变的数据结构和garbage collecting

  3. 相关联
  4. 指令集

    当您有预定义的指令集时,更容易进行优化。您还可以在VM上创建其他语言,例如ElixirLisp Flavoured Erlang

  5. 可能还有很多其他原因,但是我从头脑中迅速写下了这些原因。 Erlang的主要目的是构建容错系统(可扩展性只是容错的副产品Joe Armstrong explained)。最好将用户“限制”到虚拟机,这样可以轻松控制执行并为用户提供容错功能。