Optimal multithread model
christophe at meessen.net
Tue Mar 16 16:51:49 CET 2010
Brandon Black a écrit :
> The thing we all seem to agree on is that eventloops
> beat threads within one process, but the thing we disagree on is
> whether it's better to have the top-level processes be processes or
I'm really not so sure about the former. The ICE system developers
[http://www.zeroc.com] which is a CORBA like application made some
benchmarks and concluded that the one thread per socket is the most
efficient. It is also used in one the most efficient CORBA
implementation omniORB [http://omniorb.sourceforge.net/].
This is probably also because the application can't be easily turned
into an event loop program because the "callbacks" may have a long
execution time. These would have to be turned into state machines using
the timer to go from one state to the other. This is weird and doesn't
seem at all more efficient than a plain basic thread. Users would
My impression is that the discussion is biased by a particular use case
pattern in mind and a focus nearly exclusive on performance.
But as you know, when you have a hammer, everything looks like a nail ;).
More information about the libev