消息传递是Erlang的核心——“进程间的消息传递”。
但是,当涉及到Erlang的虚拟机概念时,仍然存在模糊不清的情况。
需要帮助吗?
消息传递是Erlang的核心——“进程间的消息传递”。
但是,当涉及到Erlang的虚拟机概念时,仍然存在模糊不清的情况。
需要帮助吗?
使用虚拟机的原因有几个:
演员
Erlang试图比其运行的操作系统更加智能。创建操作系统进程是缓慢且昂贵的。Erlang有自己的轻量级进程、管理它们的调度程序以及将它们移动到不同的核心的方法。调度是抢占式的,这赋予了软实时属性(如果没有虚拟机,这将非常困难)。
内存管理
在操作系统中分配内存可能很慢,这就是为什么Erlang可以预先分配内存并在内部进行管理的原因。这与数据结构是不可变的和垃圾回收有关。
指令集
当您有预定义的指令集时,更容易进行优化。您还可以在VM之上创建其他语言,例如Elixir或Lisp Flavoured Erlang。
ets
和register
。而且您可以将编译的beam
从一个系统移动到另一个系统。还有热代码重新加载等等...最终,您正在使用实际的Actor模型概念进行编程,而不是按计算机构建方式强加的概念。 - mpm