[erlang-questions] Kilim: Fast, lightweight, cheap message passing in Java

Patrick Logan <>
Fri Jun 20 06:14:53 CEST 2008


"Any chance you caught whether or not this tool allows shared state?
If so, pass by reference would explain 3x claim.  Objects are cheap,
so that explains the actor counts.  But at the end of the day I'd want
to know how much context switching was used for these benchmarks
before I got excited."

After a very preliminary review:

* Messages and objects are distinct.
* Messages are trees, i.e. no cycles.
* Messages are constructed in a "controlled" way to form a tree.
* Message state moves from "free" (under construction) to "constant"
(constructed, read-only) to "invalid".
* Kind of a linear type system ensures the proper construction and
"linear" hand offs of messages from actor to actor.
* Actors are implemented (I think completely isolated from each other)
using a continuation-passing style transformation to be much lighter
wieght than java threads.
* Message boxes are implemented as a "library" so various designs are
possible, the current one is multiple senders and single consumer
(enforced only at runtime, throwing an exception in the second
consumer, I recall).

Looks worth exploring.



More information about the erlang-questions mailing list