Libev vs. libevent benchmark (reloaded)
Marc Lehmann
schmorp at schmorp.de
Mon Apr 19 04:17:59 CEST 2010
On Tue, Apr 13, 2010 at 03:26:19PM +0200, Gabriel Kerneis <kerneis at pps.jussieu.fr> wrote:
> See the attached script. You might need to tweak it a bit (especially
> the cpufreq-set call) but otherwise, it automates completely the
> benchmark (provided you have the expected tools installed).
After fixing my multiple issues, I can now essentially reproduce your
findings. This is basically my version of your diagram:
http://data.plan9.de/xt0.png
http://data.plan9.de/xt1.png
this is when i use add instead of mod (major change is in overall time, as
libev does it's syscalls at another time than libevent):
http://data.plan9.de/yt0.png
http://data.plan9.de/yt1.png
And just for fun, this is using select (showing that the management code
internal to libev is faster, which is good for my sense of reality, as it
is much simpler than the one in libevent2):
http://data.plan9.de/zt1.png (note: double-logarithmic)
Effectively, there is now little (practical) performance difference
between libev and libevent, unless one has a really high number of fds to
attend to.
Thanks for prompting me to run the benchmark with libevent-2, this has
been very interesting. I will think whether the added protection against
fork is worth it (we still have the generation counter in libev for
this case), and maybe make some similar change as explained before for
libev-4.0. I am 70% convinced it can be done without sacrificing fork
protection completely.
--
The choice of a Deliantra, the free code+content MORPG
-----==- _GNU_ http://www.deliantra.net
----==-- _ generation
---==---(_)__ __ ____ __ Marc Lehmann
--==---/ / _ \/ // /\ \/ / schmorp at schmorp.de
-=====/_/_//_/\_,_/ /_/\_\
More information about the libev
mailing list