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.97 by root, Sun Apr 27 03:31:53 2008 UTC vs.
Revision 1.100 by elmex, Sun Apr 27 19:15:43 2008 UTC

66 66
67Of course, if you want lots of policy (this can arguably be somewhat 67Of course, if you want lots of policy (this can arguably be somewhat
68useful) and you want to force your users to use the one and only event 68useful) and you want to force your users to use the one and only event
69model, you should I<not> use this module. 69model, you should I<not> use this module.
70 70
71#TODO#
72
73Net::IRC3
74AnyEvent::HTTPD
75AnyEvent::DNS
76IO::AnyEvent
77Net::FPing
78Net::XMPP2
79Coro
80
81AnyEvent::IRC
82AnyEvent::HTTPD
83AnyEvent::DNS
84AnyEvent::Handle
85AnyEvent::Socket
86AnyEvent::FPing
87AnyEvent::XMPP
88AnyEvent::SNMP
89Coro
71 90
72=head1 DESCRIPTION 91=head1 DESCRIPTION
73 92
74L<AnyEvent> provides an identical interface to multiple event loops. This 93L<AnyEvent> provides an identical interface to multiple event loops. This
75allows module authors to utilise an event loop without forcing module 94allows module authors to utilise an event loop without forcing module
457might chose the wrong one unless you load the correct one yourself. 476might chose the wrong one unless you load the correct one yourself.
458 477
459You can chose to use a rather inefficient pure-perl implementation by 478You can chose to use a rather inefficient pure-perl implementation by
460loading the C<AnyEvent::Impl::Perl> module, which gives you similar 479loading the C<AnyEvent::Impl::Perl> module, which gives you similar
461behaviour everywhere, but letting AnyEvent chose is generally better. 480behaviour everywhere, but letting AnyEvent chose is generally better.
481
482=head1 OTHER MODULES
483
484L<AnyEvent> itself comes with useful utility modules:
485
486To make it easier to do non-blocking IO the modules L<AnyEvent::Handle>
487and L<AnyEvent::Socket> are provided. L<AnyEvent::Handle> provides
488read and write buffers and manages watchers for reads and writes.
489L<AnyEvent::Socket> provides means to do non-blocking connects.
490
491Aside from those there are these modules that support AnyEvent (and use it
492for non-blocking IO):
493
494=over 4
495
496=item L<AnyEvent::FastPing>
497
498=item L<Net::IRC3>
499
500=item L<Net::XMPP2>
501
502=back
462 503
463=cut 504=cut
464 505
465package AnyEvent; 506package AnyEvent;
466 507
944 EV/EV 400000 244 0.56 0.46 0.31 EV native interface 985 EV/EV 400000 244 0.56 0.46 0.31 EV native interface
945 EV/Any 100000 244 2.50 0.46 0.29 EV + AnyEvent watchers 986 EV/Any 100000 244 2.50 0.46 0.29 EV + AnyEvent watchers
946 CoroEV/Any 100000 244 2.49 0.44 0.29 coroutines + Coro::Signal 987 CoroEV/Any 100000 244 2.49 0.44 0.29 coroutines + Coro::Signal
947 Perl/Any 100000 513 4.92 0.87 1.12 pure perl implementation 988 Perl/Any 100000 513 4.92 0.87 1.12 pure perl implementation
948 Event/Event 16000 516 31.88 31.30 0.85 Event native interface 989 Event/Event 16000 516 31.88 31.30 0.85 Event native interface
949 Event/Any 16000 936 39.17 33.63 1.43 Event + AnyEvent watchers 990 Event/Any 16000 590 35.75 31.42 1.08 Event + AnyEvent watchers
950 Glib/Any 16000 1357 98.22 12.41 54.00 quadratic behaviour 991 Glib/Any 16000 1357 98.22 12.41 54.00 quadratic behaviour
951 Tk/Any 2000 1860 26.97 67.98 14.00 SEGV with >> 2000 watchers 992 Tk/Any 2000 1860 26.97 67.98 14.00 SEGV with >> 2000 watchers
952 POE/Event 2000 6644 108.64 736.02 14.73 via POE::Loop::Event 993 POE/Event 2000 6644 108.64 736.02 14.73 via POE::Loop::Event
953 POE/Select 2000 6343 94.13 809.12 565.96 via POE::Loop::Select 994 POE/Select 2000 6343 94.13 809.12 565.96 via POE::Loop::Select
954 995
1067 1108
1068=head3 Results 1109=head3 Results
1069 1110
1070 name sockets create request 1111 name sockets create request
1071 EV 20000 69.01 11.16 1112 EV 20000 69.01 11.16
1072 Perl 20000 75.28 112.76 1113 Perl 20000 73.32 35.87
1073 Event 20000 212.62 257.32 1114 Event 20000 212.62 257.32
1074 Glib 20000 651.16 1896.30 1115 Glib 20000 651.16 1896.30
1075 POE 20000 349.67 12317.24 uses POE::Loop::Event 1116 POE 20000 349.67 12317.24 uses POE::Loop::Event
1076 1117
1077=head3 Discussion 1118=head3 Discussion
1123 1164
1124=head3 Results 1165=head3 Results
1125 1166
1126 name sockets create request 1167 name sockets create request
1127 EV 16 20.00 6.54 1168 EV 16 20.00 6.54
1169 Perl 16 25.75 12.62
1128 Event 16 81.27 35.86 1170 Event 16 81.27 35.86
1129 Glib 16 32.63 15.48 1171 Glib 16 32.63 15.48
1130 Perl 16 24.62 162.37
1131 POE 16 261.87 276.28 uses POE::Loop::Event 1172 POE 16 261.87 276.28 uses POE::Loop::Event
1132 1173
1133=head3 Discussion 1174=head3 Discussion
1134 1175
1135The benchmark tries to test the performance of a typical small 1176The benchmark tries to test the performance of a typical small

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines