ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/AnyEvent/lib/AnyEvent.pm
(Generate patch)

Comparing AnyEvent/lib/AnyEvent.pm (file contents):
Revision 1.94 by root, Sat Apr 26 04:33:51 2008 UTC vs.
Revision 1.96 by root, Sat Apr 26 11:16:16 2008 UTC

959can never compete with an event loop that uses epoll when the number of 959can never compete with an event loop that uses epoll when the number of
960file descriptors grows high. In this benchmark, all events become ready at 960file descriptors grows high. In this benchmark, all events become ready at
961the same time, so select/poll-based implementations get an unnatural speed 961the same time, so select/poll-based implementations get an unnatural speed
962boost. 962boost.
963 963
964Also, note that the number of watchers usually has a nonlinear effect on
965overall speed, that is, creating twice as many watchers doesn't take twice
966the time - usually it takes longer. This puts event loops tested with a
967higher number of watchers at a disadvantage.
968
969To put the range of results into perspective, consider that on the
970benchmark machine, handling an event takes roughly 1600 CPU cycles with
971EV, 3100 CPU cycles with AnyEvent's pure perl loop and almost 3000000 CPU
972cycles with POE.
973
964C<EV> is the sole leader regarding speed and memory use, which are both 974C<EV> is the sole leader regarding speed and memory use, which are both
965maximal/minimal, respectively. Even when going through AnyEvent, it uses 975maximal/minimal, respectively. Even when going through AnyEvent, it uses
966far less memory than any other event loop and is still faster than Event 976far less memory than any other event loop and is still faster than Event
967natively. 977natively.
968 978

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines