Stories
Slash Boxes
Comments
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

rcaputo (9040)

rcaputo
  (email not shown publicly)
http://poe.perl.org/

Journal of rcaputo (9040)

Wednesday October 14, 2009
12:19 AM

POE 1.280 is Faster

[ #39749 ]

POE 1.280 has just been released, but it may take up to a day before your favorite CPAN mirror catches wind of it. You'll also need the latest POE::Test::Loops, version 1.030.

Those following along may notice that the version numbers jumped a little. That's because POE has undergone a couple optimizations that alter its behavior a little.

I/O Dispatch is Faster

I/O events jump the queue in POE 1.280. Skipping an enqueue and dequeue saves significant time. The drawback is that I/O is dispatched in a different order relative to other kinds of events. Most people won't care, but it has affected one of POE::Component::Client::HTTP's tests. See below for contact information if you think it's affected you.

Session Cleanup is Faster

In POE 1.280, session cleanup is done just before the event loop would wait for new events. Programs that aren't event bound should show decreased latency because the cleanup will be scheduled during idle times. This optimization changes the timing of session cleanup and their resulting _stop events. While I don't think it affects many people, it has already bitten Adam Kennedy. Please let us know if you suspect it's gnawing on you, too.

Staying in Touch

People who need realtime notice of POE changes may watch them at SourceForge, Ohlo and CIA.

POE's community may be found everywhere. Several members tend to accumulate in POE's mailing list and IRC channel at irc.perl.org #poe. You're welcome to join us, even if you don't have problems to report.

Thank you.

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More | Login | Reply
Loading... please wait.
  • So, how MUCH faster? :)

    • Sorry, no fancy graphs.

      I wrote a deliberately simple program to count select_read() events per second. I ran it five times for each version of POE, averaged the results, and calculated the improvement using (new_rate/old_rate-1). Standard deviation for the sample sets were about 1%, if that matters.

      #!/usr/bin/env perl

      use warnings;
      use strict;

      use POE;

      my $limit = 10_000;
      my @start_times;
      my @end_times;
      my $count = 0;

      my $filehandle;

      POE::Session->create(
        inline_states => {
          _star