为什么Erlang进程创建和消息传递时间比java和C#少

发布于 2024-09-15 14:51:58 字数 336 浏览 4 评论 0原文

我在互联网上搜索Erlang的流程模型并找到了一些图表alt text幻灯片 3-4Joe Armstrong。它们显示了 Erlang、java 和 C# 之间进程创建和消息传递时间之间的许多差异。谁能告诉我这种巨大差异背后的原因吗?

I was searching about process model of Erlang over internet and found out some graphs alt text slides 3-4 in one of the talk given by Joe Armstrong. They shows a lot of difference between process creation and message passing time between Erlang , java and C#. Can anybody tell me the reason behind such big difference?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

墨洒年华 2024-09-22 14:51:58

在 Erlang 中,进程不是真正的进程。它们是由语言处理的轻量结构。消息传递也由语言处理,尽可能使用共享内存。

另一方面,其他语言正在使用真正的线程/进程,因为它们没有像这样的内置轻量级结构。因此,这些结构有点重,都是使用线程原语进行通信(速度较慢)。

我不知道你的图表,但我想它表明 Erlang 的流程更好。它已经完成了本质上不同的事物的比较,但它表明 Erlang 能够对使用消息进行通信的独立对象进行建模(这是在其他语言中无法真正做到的事情)。

In Erlang, processes are not real processes. They are light structures handled by the language. Message passing is also handled by the language, using shared memory when possible.

In the other hand, other languages are using real threads / processes since they don't have built-in light structures like this. Therefore, these structure are a bit heavier, are using thread primitives to communicate (slower).

I don't know about your graph, but I guess it shows that Erlang's processes are better. It's done comparing things that are inherently different, however it show that Erlang rocks to model standalone objects communicating using messages (things you cannot really do in other languages).

慢慢从新开始 2024-09-22 14:51:58

Erlang 进程非常轻量。实现甚至不需要为 Erlang 进程分配操作系统线程。这与 Erlang 的函数性质有关。

Erlang processes are very light weight. An implementation does not even need to allocate an OS thread to an Erlang process. This has to do with the functional nature of Erlang.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文