in reply to Re: Slow performance of non-blocking select?
in thread Slow performance of non-blocking select?
Thanks flexvault!
My first thought was: "I'm using non-blocking IO::Select objects, so the time-out shouldn't matter"
...but that seems to have been the problem. 'can_read' and IO::Select::select both seem to be blocking even though I'm calling $obj->blocking(0);
By using a very small time-out, I'm able to get very close to the performance of the original version of that package. Some runs actually show the new version out-performing the old one.
The way the code is structured, it misses time that it could be doing other things while it is being blocked on can_read, so I don't get the advantage that you may be getting.
Cheers!
My first thought was: "I'm using non-blocking IO::Select objects, so the time-out shouldn't matter"
...but that seems to have been the problem. 'can_read' and IO::Select::select both seem to be blocking even though I'm calling $obj->blocking(0);
By using a very small time-out, I'm able to get very close to the performance of the original version of that package. Some runs actually show the new version out-performing the old one.
The way the code is structured, it misses time that it could be doing other things while it is being blocked on can_read, so I don't get the advantage that you may be getting.
Cheers!
|
---|
In Section
Seekers of Perl Wisdom