--- AnyEvent/lib/AnyEvent.pm 2008/04/26 11:06:45 1.95 +++ AnyEvent/lib/AnyEvent.pm 2008/04/27 16:31:48 1.98 @@ -68,6 +68,25 @@ useful) and you want to force your users to use the one and only event model, you should I use this module. +#TODO# + +Net::IRC3 +AnyEvent::HTTPD +AnyEvent::DNS +IO::AnyEvent +Net::FPing +Net::XMPP2 +Coro + +AnyEvent::IRC +AnyEvent::HTTPD +AnyEvent::DNS +AnyEvent::Handle +AnyEvent::Socket +AnyEvent::FPing +AnyEvent::XMPP +AnyEvent::SNMP +Coro =head1 DESCRIPTION @@ -946,7 +965,7 @@ CoroEV/Any 100000 244 2.49 0.44 0.29 coroutines + Coro::Signal Perl/Any 100000 513 4.92 0.87 1.12 pure perl implementation Event/Event 16000 516 31.88 31.30 0.85 Event native interface - Event/Any 16000 936 39.17 33.63 1.43 Event + AnyEvent watchers + Event/Any 16000 590 35.75 31.42 1.08 Event + AnyEvent watchers Glib/Any 16000 1357 98.22 12.41 54.00 quadratic behaviour Tk/Any 2000 1860 26.97 67.98 14.00 SEGV with >> 2000 watchers POE/Event 2000 6644 108.64 736.02 14.73 via POE::Loop::Event @@ -966,6 +985,11 @@ 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 @@ -1130,7 +1154,9 @@ The benchmark tries to test the performance of a typical small server. While knowing how various event loops perform is interesting, keep in mind that their overhead in this case is usually not as important, due -to the small absolute number of watchers. +to the small absolute number of watchers (that is, you need efficiency and +speed most when you have lots of watchers, not when you only have a few of +them). EV is again fastest. @@ -1141,7 +1167,7 @@ The pure perl event loop is much slower, but still competitive. -POE also performs much better in this case, but is is stillf ar behind the +POE also performs much better in this case, but is is still far behind the others. =head3 Summary