Ok, after a bit of fiddling, I've managed to figure out that this is
two problems, not one.

The first is related to a naughty IMAP server which simply stops responding
after a certain number of seconds.  Unfortunately, this is my workplace's
IMAP server, so I can't give you a test environment.  Furthermore, the code
that would be appropriate to change is in Net::Imap, and thus is not
easily accessible by Sup.  I've worked around this by making it an unusual
source.

The second is a large amount of CPU thrashing as Sup parses messages. This
is something we can fix, and I hope to do some more poking to help make
Sup run faster in this respect. The basic behavior is Sup repeatedly
allocates some amount of memory, reallocates it twice (quadrupling it
in size to about 4MB), deallocates, and then does it again. I'm running
ruby-prof in hopes of tickling this again.  Unlike the hung IMAP server,
this eventually finishes, but it is extremely obnoxious when it happens
and blocks everything else. It commonly occurs when I open an email message.

Cheers,
Edward
_______________________________________________
sup-talk mailing list
sup-talk@rubyforge.org
http://rubyforge.org/mailman/listinfo/sup-talk

Reply via email to