为什么erlang需要虚拟机?
消息传递是Erlang的核心——“通过进程的消息传递” 但说到erlang,虚拟机的概念仍然很模糊为什么erlang需要虚拟机?,erlang,vm-implementation,Erlang,Vm Implementation,消息传递是Erlang的核心——“通过进程的消息传递” 但说到erlang,虚拟机的概念仍然很模糊 有什么帮助吗?使用虚拟机有两个原因: 演员 Erlang试图比它运行的操作系统更智能。创建操作系统进程既慢又昂贵。Erlang有自己的轻进程、管理它们的调度程序和在核心之间移动它们的方法。是抢占式的,它提供了软实时属性(没有虚拟机是很难做到的) 内存管理 操作系统中的内存分配可能很慢,这就是为什么Erlang可以预先分配内存并在内部管理它。它与数据结构相连,数据结构是不可变的 指令集 当您有预
有什么帮助吗?使用虚拟机有两个原因:
可能还有很多很多其他的原因,但这些都是我很快写下的。Erlang的主要目的是构建容错系统(可伸缩性只是容错的副产品)。最好将用户“限制”到虚拟机,这样可以轻松控制执行,并给予用户容错能力。在虚拟机中创建进程也可以实现更便宜的消息传递。由于这是由Erlang管理的,所以您可以使用Erlang跟踪它们。你可以管理他们的一生,并在他们死后(更容易)注意到他们。它甚至允许在需要时使用
ets
和register
进行一些“共享内存”数据。您可以将编译后的梁的表单系统移动到另一个系统。和热代码重新加载。还有更多。。。最终,您是在实际的参与者模型概念中编程,而不是在计算机构建方式所强加的概念中编程。看到进程是erlang进程,erlang VM在创建这些进程方面可以而且比操作系统聪明得多。操作系统中的内存分配很慢,特别是在必须是线程安全的情况下,因此erlang VM处理内存的速度要快得多。有许多内部内存管理器和收集器专门针对不同类型的内存。基本上可以归结为,erlang虚拟机的目标是运行erlang,而操作系统则更为通用。@rvirding:如果有任何需要添加的地方,请随意添加。