Почему Erlang обрабатывает процесс создания и время передачи сообщений меньше, чем Java и C # - PullRequest
6 голосов
/ 24 августа 2010

Я искал около модель процесса Эрланга по Интернету и обнаружил некоторые графики alt text слайды 3-4 в одном из выступлений Джо Армстронга .Они показывают большую разницу между созданием процесса и временем передачи сообщений между Erlang, java и C # .Кто-нибудь может сказать мне причину такой большой разницы?

Ответы [ 2 ]

7 голосов
/ 24 августа 2010

В Erlang процессы не являются реальными процессами. Это легкие структуры, управляемые языком. Передача сообщений также обрабатывается языком с использованием общей памяти, когда это возможно.

С другой стороны, другие языки используют реальные потоки / процессы, так как они не имеют встроенных световых структур, подобных этой. Таким образом, эти структуры немного тяжелее, они используют потоковые примитивы для связи (медленнее).

Я не знаю о вашем графике, но я предполагаю, что он показывает, что процессы Эрланга лучше. Это сделано, сравнивая вещи, которые по своей сути различны, однако показывает, что Эрланг старается моделировать автономные объекты, общающиеся с помощью сообщений (вещи, которые вы не можете сделать на других языках).

3 голосов
/ 24 августа 2010

Процессы Эрланга очень легкие. Реализация даже не должна выделять поток ОС для процесса Erlang. Это связано с функциональной природой Эрланга.

...