Skip Menu |

This queue is for tickets about the POE CPAN distribution.

Report information
The Basics
Id: 59925
Status: resolved
Priority: 0/
Queue: POE

People
Owner: Nobody in particular
Requestors: avar [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: Critical
Broken in: 1.291
Fixed in: (no value)



Subject: POE 1.291 had a major performance regression in "Move non-alarms out of POE::Queue::Array"
POE had a very large performance regression between 1.289 and 1.291. I've bisected it down to "Move non-alarms out of POE::Queue::Array." (r2898) by rcaputo (http://github.com/bingos/poe/commit/b8372258f9). I noticed this when we were running an App::Pocoirc bot that connects to Hailo with POE::Component::IRC::Hailo. The configuration for the bot is: server: localhost port: 60666 debug: 1 networks: - name: freenode local_plugins: - [Connector] - [Hailo, { Talkative: 1, Abuse_interval: 0, Ignore_regexes: ['^,'], Own_channel: '#failo', Hailo_args: { storage_class: SQLite, brain: '/var/tmp/ramdisk/failo/failo.sqlite', } }] The Hailo brain is run on a ramdisk, under 1.289 it would respond instantly, but when I strace the process under 1.291 it takes 2-3 seconds from the time an IRC message comes over the network until the process makes its first read() call. Something in r2898 seems to be delaying event dispatch by that much. As an aside, it'd be nice if all POE releases weren't deleted from the CPAN as soon as a new release comes out. I had to go search on the backpan to find a POE tarball that wasn't broken.
Thank you for the bug report and all the help on IRC. I've committed revision 2909 which fixes it, and I'm about to release 1.292 to PAUSE.