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.185 by root, Thu Oct 2 15:11:01 2008 UTC vs.
Revision 1.194 by root, Sun Mar 22 03:56:37 2009 UTC

861no warnings; 861no warnings;
862use strict qw(vars subs); 862use strict qw(vars subs);
863 863
864use Carp; 864use Carp;
865 865
866our $VERSION = 4.3; 866our $VERSION = 4.34;
867our $MODEL; 867our $MODEL;
868 868
869our $AUTOLOAD; 869our $AUTOLOAD;
870our @ISA; 870our @ISA;
871 871
1263used, and preference will be given to protocols mentioned earlier in the 1263used, and preference will be given to protocols mentioned earlier in the
1264list. 1264list.
1265 1265
1266This variable can effectively be used for denial-of-service attacks 1266This variable can effectively be used for denial-of-service attacks
1267against local programs (e.g. when setuid), although the impact is likely 1267against local programs (e.g. when setuid), although the impact is likely
1268small, as the program has to handle connection errors already- 1268small, as the program has to handle conenction and other failures anyways.
1269 1269
1270Examples: C<PERL_ANYEVENT_PROTOCOLS=ipv4,ipv6> - prefer IPv4 over IPv6, 1270Examples: C<PERL_ANYEVENT_PROTOCOLS=ipv4,ipv6> - prefer IPv4 over IPv6,
1271but support both and try to use both. C<PERL_ANYEVENT_PROTOCOLS=ipv4> 1271but support both and try to use both. C<PERL_ANYEVENT_PROTOCOLS=ipv4>
1272- only support IPv4, never try to resolve or contact IPv6 1272- only support IPv4, never try to resolve or contact IPv6
1273addresses. C<PERL_ANYEVENT_PROTOCOLS=ipv6,ipv4> support either IPv4 or 1273addresses. C<PERL_ANYEVENT_PROTOCOLS=ipv6,ipv4> support either IPv4 or
1533watcher. 1533watcher.
1534 1534
1535=head3 Results 1535=head3 Results
1536 1536
1537 name watchers bytes create invoke destroy comment 1537 name watchers bytes create invoke destroy comment
1538 EV/EV 400000 244 0.56 0.46 0.31 EV native interface 1538 EV/EV 400000 224 0.47 0.35 0.27 EV native interface
1539 EV/Any 100000 244 2.50 0.46 0.29 EV + AnyEvent watchers 1539 EV/Any 100000 224 2.88 0.34 0.27 EV + AnyEvent watchers
1540 CoroEV/Any 100000 244 2.49 0.44 0.29 coroutines + Coro::Signal 1540 CoroEV/Any 100000 224 2.85 0.35 0.28 coroutines + Coro::Signal
1541 Perl/Any 100000 513 4.92 0.87 1.12 pure perl implementation 1541 Perl/Any 100000 452 4.13 0.73 0.95 pure perl implementation
1542 Event/Event 16000 516 31.88 31.30 0.85 Event native interface 1542 Event/Event 16000 517 32.20 31.80 0.81 Event native interface
1543 Event/Any 16000 590 35.75 31.42 1.08 Event + AnyEvent watchers 1543 Event/Any 16000 590 35.85 31.55 1.06 Event + AnyEvent watchers
1544 Glib/Any 16000 1357 98.22 12.41 54.00 quadratic behaviour 1544 Glib/Any 16000 1357 102.33 12.31 51.00 quadratic behaviour
1545 Tk/Any 2000 1860 26.97 67.98 14.00 SEGV with >> 2000 watchers 1545 Tk/Any 2000 1860 27.20 66.31 14.00 SEGV with >> 2000 watchers
1546 POE/Event 2000 6644 108.64 736.02 14.73 via POE::Loop::Event 1546 POE/Event 2000 6328 109.99 751.67 14.02 via POE::Loop::Event
1547 POE/Select 2000 6343 94.13 809.12 565.96 via POE::Loop::Select 1547 POE/Select 2000 6027 94.54 809.13 579.80 via POE::Loop::Select
1548 1548
1549=head3 Discussion 1549=head3 Discussion
1550 1550
1551The benchmark does I<not> measure scalability of the event loop very 1551The benchmark does I<not> measure scalability of the event loop very
1552well. For example, a select-based event loop (such as the pure perl one) 1552well. For example, a select-based event loop (such as the pure perl one)

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines