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