据我所知,虚拟机分为两类:"系统虚拟机"或"进程虚拟机".BEAM所在的地方对我来说有点模糊.还有其他一种我不知道的虚拟机吗?
我真的不明白,Erlang如何比C++更有效率?
线程是"轻量级的",因为大部分开销已经通过创建其进程来完成.
我在其中一个教程中找到了这个.
有人可以详细说明它究竟意味着什么吗?
我阅读了Joe Armstrong的"编程Erlang",以及"n核机器"理论的"n倍快".在Erlang中进行多核编程的有效方法是使用大量进程(线程).
我是一名C++程序员,所以我很好奇在C++中创建大量线程和在Erlang中创建大量进程之间的区别.我知道在C/C++中处理线程并不容易.我也知道锁定/解锁会使系统变慢.但这不是不可能,对吧?
那么..为什么Erlang是一种支持多种语言的语言?是因为它很容易编程吗?
我正在为MMORPG制作一个在线游戏服务器,这就是为什么我对Erlang作为替代服务器语言感兴趣的原因.
(我已经读过这个问题,但我认为这不是我正在寻找的问题.)
基于一个基于线程的进程使用模型进行并发的主要优点是什么?后者适用于什么情境?
我已经阅读了很多我可以在WebSockets上找到的指南和教程,但其中没有一本已经介绍了如何有效地使用它们.
有没有人有任何关于如何做到这一点的指南?我担心单个连接可能占用的带宽量,特别是当应用程序打开了连接的趋势时.
BEA和M.的字母代表什么?我记得看到对首字母缩略词"BEAM"的解释,但我还没有找到它.
它出现在错误代码中:
? gentoo iex
Erlang/OTP 17 [erts-6.4.1] [source] [64-bit] [smp:8:8] [async-threads:10] [kernel-poll:false]
Interactive Elixir (1.0.4) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> import Math
08:05:02.839 [error] Loading of /var/opt/proj/elx/ubuntu/Elixir.Math.beam failed: :badfile
** (CompileError) iex:1: module Math is not loaded and could not be found
08:05:02.846 [error] beam/beam_load.c(1104): Error loading module 'Elixir.Math':
non-ascii garbage '78705400' instead of chunk type id
(elixir) src/elixir_exp.erl:123: :elixir_exp.expand/2
iex(1)>
Run Code Online (Sandbox Code Playgroud)
因此,看起来.beam文件存在某种问题,可能是由于我使用了vi.(注意Elixir程序员:不要编辑.beam文件,这很痛苦.)
这个问题解释了BEAM虚拟机是什么,而不是字母代表什么.似乎很难在Erlang中心快速找到关于词源的更多信息.据说 BEAM是Erlang和Elixir的秘诀.
我对Erlang的了解非常有限,但据我所知,它可以以非常低的成本产生"过程".
所以我想知道,幕后的那些"过程"是什么?
它们是纤维吗?主题?延续?
有没有办法在.NET中实现Erlang风格的轻量级进程?
我找到了一些实现Erlang消息传递模型(actor模型)的项目.例如,阿克苏姆.但我没有发现轻量级流程的实现.我指的是在单个OS线程或OS进程的上下文中运行的多个进程.
我正在通过互联网搜索Erlang的流程模型,并找到了一些图表
在Joe Armstrong的一次演讲中滑行3-4.它们显示了Erlang,java和C#之间的进程创建和消息传递时间之间的很多区别.谁能告诉我这么大的差异背后的原因 ?
无论何时提到Erlang进程或绿线程或协同程序,与内核线程相比,它们总是被描述为"轻量级".通常给出的原因是内核线程涉及缓慢的上下文切换.
但究竟关于上下文切换的速度有多慢呢?与在用户区切换绿色线程相比,它有多慢?
上下文切换是主要(仅?)因素,它解决了事件驱动程序(如Nignx)和多处理程序(如Apache)之间性能和内存消耗的差异?
我试图找出,elixir OTP进程和正常操作系统进程之间有什么区别让我们说Linux.有人可以对此有所了解吗?经过研究,我仍然感到困惑.
erlang ×8
beam ×2
concurrency ×2
elixir ×2
erlang-otp ×2
process ×2
.net ×1
acronym ×1
architecture ×1
c ×1
c# ×1
c++ ×1
coroutine ×1
fiber ×1
java ×1
javascript ×1
kernel ×1
multicore ×1
networking ×1
pthreads ×1
server-side ×1
websocket ×1