Performance of send_message()
James Hague
jhague@REDACTED
Sat Aug 5 04:13:00 CEST 2000
>Are there plans to optimize this and pass pointers instead in the
>case of local communications ? Is this compatible with the current
>GC ? What would be the gain ?
Ah, this has almost reached the level of Frequently Asked Question :)
Ericsson's Erlang implementation does not do GC across process
boundaries. That is, each process has its own memory space. This scheme
has some nice properties. When a process is killed, the allocated memory
can be freed in one shot, so there's no latent GC overhead. With
relatively small processes, total GC time can be much smaller, because
there are lots of little heaps instead of one monster heap.
The disadvantage is that data passed between processes has to be copied,
which can be bad in some situations. It is difficult to say if this is
more or less important than the benefits mentioned above. I suspect that
the average message size is fairly small?
James
More information about the erlang-questions
mailing list