Max Demian has asked for the wisdom of the Perl Monks concerning the following question:

I'm currently using Net::SMTP and Net::POP3 to upload and download emails with large-ish attachments (5Megs).

The script is maxing out my CPU and taking a fairly long amount of time. To compare it to a regular email client it takes about 3x as long to download and uses 95% CPU intead of 10-15%.

I had assumed that most of the work here is simply waiting for the socket to have some data to read and blocking (and therefore yielding CPU to other processes) while it waits. I'm not doing anything with the downloaded message other than storing it (either directly to disk or into memory, makes no performance difference).

The issue is happening with 5.8.6 and 5.8.4 on both windows (activeperl) and debian.

  • Comment on Net::SMTP/POP3 very slow and CPU intensive -- IO::Socket blocking issue?

Replies are listed 'Best First'.
Re: Net::SMTP/POP3 very slow and CPU intensive -- IO::Socket blocking issue?
by Tanktalus (Canon) on Apr 21, 2005 at 01:03 UTC

    Is there a question there?

    A question is something like this: "Here's a pared down, working (in that it exhibits the same problem) example of my code. I think IO::Socket isn't blocking but polling. I can't figure out how to change this, or even how to confirm my suspicions. Can someone see something I'm missing? Thanks."

    Oh, and don't forget to actually include that pared down example. In code tags, preferably ;-)

    Thanks,