An old proverb states that all software from the
University of Washington sucks. This is definitely true for software like
pine, and it also turned out to be true for
uw-imapd, the IMAP server that I used until yesterday.
Actually, the only reason I was using uw-imapd before was because I had a lot of mbox files before I switched from local mail fetching to my own IMAP server, and it was the least pain to switch over to IMAP using uw-imapd. But mysteriously, uw-imapd got a lot slower during the last year, and so I started observing uw-imapd closer. What was clear before was that using mbox as mailbox file format would be extremely inefficient. But when I attached
strace to the
imapd process, the whole thing looked even more horrible: while the client is total idle,
imapd appears to have some kind of background noise of
a lot of system calls, mostly
alarm(). So it seems that uw-imapd does some kind of polling, instead of working in a event-based fashion using
select() or
poll(). This definitely sucks. So, I switched over to courier-imapd, which is nice to handle, uses Maildir mailboxes, which are much nicer (random access to mails in a mailbox, 1:1 mapping of operations on a mail to filesystem operations, faster backups when using rsync, ...), it reacts and loads mailboxes a lot faster than uw-imapd, and most importantly, it keeps the load a lot lower. What I pity that I virtually tortured myself for over a year with this crappy uw-imapd.