--- AnyEvent/lib/AnyEvent.pm 2008/04/26 04:19:52 1.93 +++ AnyEvent/lib/AnyEvent.pm 2008/04/26 11:16:16 1.96 @@ -961,6 +961,16 @@ the same time, so select/poll-based implementations get an unnatural speed boost. +Also, note that the number of watchers usually has a nonlinear effect on +overall speed, that is, creating twice as many watchers doesn't take twice +the time - usually it takes longer. This puts event loops tested with a +higher number of watchers at a disadvantage. + +To put the range of results into perspective, consider that on the +benchmark machine, handling an event takes roughly 1600 CPU cycles with +EV, 3100 CPU cycles with AnyEvent's pure perl loop and almost 3000000 CPU +cycles with POE. + C is the sole leader regarding speed and memory use, which are both maximal/minimal, respectively. Even when going through AnyEvent, it uses far less memory than any other event loop and is still faster than Event @@ -1045,7 +1055,7 @@ =head3 Explanation of the columns I is the number of sockets, and twice the number of "servers" (as -eahc server has a read and write socket end). +each server has a read and write socket end). I is the time it takes to create a socketpair (which is nontrivial) and two watchers: an I/O watcher and a timeout watcher.