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

Comparing AnyEvent/README (file contents):
Revision 1.30 by root, Mon Sep 29 02:08:57 2008 UTC vs.
Revision 1.34 by root, Fri Nov 21 01:36:22 2008 UTC

777 777
778 AnyEvent::IGS 778 AnyEvent::IGS
779 A non-blocking interface to the Internet Go Server protocol (used by 779 A non-blocking interface to the Internet Go Server protocol (used by
780 App::IGS). 780 App::IGS).
781 781
782 AnyEvent::IRC
783 AnyEvent based IRC client module family (replacing the older
782 Net::IRC3 784 Net::IRC3).
783 AnyEvent based IRC client module family.
784 785
785 Net::XMPP2 786 Net::XMPP2
786 AnyEvent based XMPP (Jabber protocol) module family. 787 AnyEvent based XMPP (Jabber protocol) module family.
787 788
788 Net::FCP 789 Net::FCP
1130 *destroy* is the time, in microseconds, that it takes to destroy a 1131 *destroy* is the time, in microseconds, that it takes to destroy a
1131 single watcher. 1132 single watcher.
1132 1133
1133 Results 1134 Results
1134 name watchers bytes create invoke destroy comment 1135 name watchers bytes create invoke destroy comment
1135 EV/EV 400000 244 0.56 0.46 0.31 EV native interface 1136 EV/EV 400000 224 0.47 0.35 0.27 EV native interface
1136 EV/Any 100000 244 2.50 0.46 0.29 EV + AnyEvent watchers 1137 EV/Any 100000 224 2.88 0.34 0.27 EV + AnyEvent watchers
1137 CoroEV/Any 100000 244 2.49 0.44 0.29 coroutines + Coro::Signal 1138 CoroEV/Any 100000 224 2.85 0.35 0.28 coroutines + Coro::Signal
1138 Perl/Any 100000 513 4.92 0.87 1.12 pure perl implementation 1139 Perl/Any 100000 452 4.13 0.73 0.95 pure perl implementation
1139 Event/Event 16000 516 31.88 31.30 0.85 Event native interface 1140 Event/Event 16000 517 32.20 31.80 0.81 Event native interface
1140 Event/Any 16000 590 35.75 31.42 1.08 Event + AnyEvent watchers 1141 Event/Any 16000 590 35.85 31.55 1.06 Event + AnyEvent watchers
1141 Glib/Any 16000 1357 98.22 12.41 54.00 quadratic behaviour 1142 Glib/Any 16000 1357 102.33 12.31 51.00 quadratic behaviour
1142 Tk/Any 2000 1860 26.97 67.98 14.00 SEGV with >> 2000 watchers 1143 Tk/Any 2000 1860 27.20 66.31 14.00 SEGV with >> 2000 watchers
1143 POE/Event 2000 6644 108.64 736.02 14.73 via POE::Loop::Event 1144 POE/Event 2000 6328 109.99 751.67 14.02 via POE::Loop::Event
1144 POE/Select 2000 6343 94.13 809.12 565.96 via POE::Loop::Select 1145 POE/Select 2000 6027 94.54 809.13 579.80 via POE::Loop::Select
1145 1146
1146 Discussion 1147 Discussion
1147 The benchmark does *not* measure scalability of the event loop very 1148 The benchmark does *not* measure scalability of the event loop very
1148 well. For example, a select-based event loop (such as the pure perl one) 1149 well. For example, a select-based event loop (such as the pure perl one)
1149 can never compete with an event loop that uses epoll when the number of 1150 can never compete with an event loop that uses epoll when the number of
1330 1331
1331 Summary 1332 Summary
1332 * C-based event loops perform very well with small number of watchers, 1333 * C-based event loops perform very well with small number of watchers,
1333 as the management overhead dominates. 1334 as the management overhead dominates.
1334 1335
1336SIGNALS
1337 AnyEvent currently installs handlers for these signals:
1338
1339 SIGCHLD
1340 A handler for "SIGCHLD" is installed by AnyEvent's child watcher
1341 emulation for event loops that do not support them natively. Also,
1342 some event loops install a similar handler.
1343
1344 SIGPIPE
1345 A no-op handler is installed for "SIGPIPE" when $SIG{PIPE} is
1346 "undef" when AnyEvent gets loaded.
1347
1348 The rationale for this is that AnyEvent users usually do not really
1349 depend on SIGPIPE delivery (which is purely an optimisation for
1350 shell use, or badly-written programs), but "SIGPIPE" can cause
1351 spurious and rare program exits as a lot of people do not expect
1352 "SIGPIPE" when writing to some random socket.
1353
1354 The rationale for installing a no-op handler as opposed to ignoring
1355 it is that this way, the handler will be restored to defaults on
1356 exec.
1357
1358 Feel free to install your own handler, or reset it to defaults.
1359
1335FORK 1360FORK
1336 Most event libraries are not fork-safe. The ones who are usually are 1361 Most event libraries are not fork-safe. The ones who are usually are
1337 because they rely on inefficient but fork-safe "select" or "poll" calls. 1362 because they rely on inefficient but fork-safe "select" or "poll" calls.
1338 Only EV is fully fork-aware. 1363 Only EV is fully fork-aware.
1339 1364

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines