![]() |
1
14
由于同一节点上的Erlang进程都在单个本机进程(BEAM仿真器)中运行,因此消息结构只需复制到接收方的消息队列中。由于所有标准的无副作用函数编程原因,消息结构是复制的,而不是简单地引用的。
如果您选择在一台物理机器上运行多个波束模拟器,我猜消息在它们之间的发送方式与在不同物理机器之间的发送方式相同。不过,既然BEAM有很好的SMP支持,可能就没有什么好的理由这么做了。
在你的实际硬件上建立一个简单的基准对你来说比其他人的轶事证据更有用。 但是,如果您想获得一般性,请注意内存带宽是有限的 around 20 GByte/sec 现在,节点之间的网络连接速度不太可能超过10 Gbit/sec。这意味着,虽然您的实际应用程序与您执行或发现的任何简单基准测试之间可能存在许多差异,但这些差异可能无法掩盖传输速率的数量级差异。
|
![]() |
2
6
“复制Erlang进程之间消息中的所有数据,但同一Erlang节点上的refc二进制文件除外。”: http://erlang.org/doc/efficiency_guide/processes.html#id2265332 |
![]() |
pandoragami · 二郎:案例。。函数调用返回的构造? 11 年前 |