[erlang-questions] Concurrency-related optimizations
Tue Jan 29 11:16:41 CET 2008
--- Jacob Lee <jelee2@REDACTED> wrote:
> My question for the general
> Erlang community is:
> are there any optimizations that have been
> considered or suggested for
> Erlang but not yet implemented? My focus is on
> optimization: e.g., those related to scheduling or
> message passing.
Some input from actors researchers sounds great.
Apart from the 'Hippo' paper mentioned before, I seem
to remember hearing about some experiments at Ericsson
CSlab to schedule the receiver right after the sender
when a message was sent. There was no significant
performance benefit at that time. (Though I think that
was done for the far slower JAM virtual machine.)
The hybrid and shared heap VMs reduce message passing
costs by avoiding copying. Gains for real apps seem
inconclusive so far.
As mentioned by another poster, receive statements can
perform badly. This has been documented, um, somewhere
on this mailing list, I seem to recall. (Sorry.)
There hasn't been much published about scheduling. The
old-timers usually just shudder and change the subject
when anything beyond the existing heuristic scheduler
with high/medium/low priorities is mentioned :-)
Actually, there seems to be some OTP experimentation
behind the scenes (process prio based on message queue
length?), but little has been published.
While Erlang processes are pretty lightweight, they
still are much heavier than the dataflow-style
'actors' we looked at in the 80s and 90s. Maybe
something could be done there.
Be a better friend, newshound, and
know-it-all with Yahoo! Mobile. Try it now. http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ
More information about the erlang-questions