… | |
… | |
864 | |
864 | |
865 | |
865 | |
866 | =head1 BENCHMARK |
866 | =head1 BENCHMARK |
867 | |
867 | |
868 | To give you an idea of the performance and overheads that AnyEvent adds |
868 | To give you an idea of the performance and overheads that AnyEvent adds |
|
|
869 | over the event loops themselves (and to give you an impression of the |
869 | over the event loops directly, here is a benchmark of various supported |
870 | speed of various event loops), here is a benchmark of various supported |
870 | event models natively and with anyevent. The benchmark creates a lot of |
871 | event models natively and with anyevent. The benchmark creates a lot of |
871 | timers (with a zero timeout) and io watchers (watching STDOUT, a pty, to |
872 | timers (with a zero timeout) and io watchers (watching STDOUT, a pty, to |
872 | become writable, which it is), lets them fire exactly once and destroys |
873 | become writable, which it is), lets them fire exactly once and destroys |
873 | them again. |
874 | them again. |
874 | |
875 | |
… | |
… | |
893 | I<invoke> is the time, in microseconds, used to invoke a simple |
894 | I<invoke> is the time, in microseconds, used to invoke a simple |
894 | callback. The callback simply counts down a Perl variable and after it was |
895 | callback. The callback simply counts down a Perl variable and after it was |
895 | invoked "watcher" times, it would C<< ->broadcast >> a condvar once to |
896 | invoked "watcher" times, it would C<< ->broadcast >> a condvar once to |
896 | signal the end of this phase. |
897 | signal the end of this phase. |
897 | |
898 | |
898 | I<destroy> is the time, in microseconds, that it takes destroy a single |
899 | I<destroy> is the time, in microseconds, that it takes to destroy a single |
899 | watcher. |
900 | watcher. |
900 | |
901 | |
901 | =head2 Results |
902 | =head2 Results |
902 | |
903 | |
903 | name watcher bytes create invoke destroy comment |
904 | name watcher bytes create invoke destroy comment |