为什么erlang需要虚拟机?

HIR*_*KUR 4 erlang vm-implementation

消息传递是Erlang的核心 - "消息传递进程".

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

任何帮助?

tko*_*wal 12

使用虚拟机有几个原因:

  1. 演员

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

  2. 内存管理

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

  3. 指令系统

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

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

  • 看到这些进程是错误的进程,erlang VM在创建这些进程时可以比操作系统更加智能.操作系统中的内存分配很慢,尤其是当它必须是线程安全的时候,因此erlang VM在处理内存方面要快得多.有许多内部存储器管理器和收集器专门针对不同类型的存储器.它基本归结为erlang VM的目标是运行erlang,而操作系统则更为通用. (4认同)