I just found Columba through the Sun Java Swing Sightings page and I
think it has promise. The UI is very attractive, and I like your
philosophy of using background threads to try and keep the UI usable
at all times. However, in trying to do some basic stuff with it, it
seems to have some pretty severe performance and memory problems which
seem pretty fixable. I'd like to know more about the architecture, and
why it's designed the way it is. Here are some questions:
[btw, my machine is a P-II 300mhz, 196MB. Which is by no means a speed
daemon, but the speed problems I experienced seemed very
1) Why mh-style one file per message?
I read the documentation page explaining that it is because of
'Java IO performance'. Can you explain that?
Generally, the overhead of opening a file to read each message in
a mailbox is too much. You can see this in the performance of simple
mail clients such as Mutt, as Maildir folders are much slower than
mbox folders. Furthermore, operating systems are generally pretty bad
at handling really large numbers of small files. Sometimes this affects
the performance of accessing anything in the directory, and it definetly
affects the performance of other operations on the machine such as
filesystem checks and nightly "updatedb" or "findfast index" operations.
Surely using berkeleydb, sqlite, or some other hash or b-tree
oriented storage tool to store messages and index entries separately
would yeild better overall performance as the number of messages
2) mbox import is slow and takes tons of memory, why?
Unfortunatly, the IMAP server I want to try this against is only
accessable with SSL, and that support is not yet done in Columba.
Therefore, I tried to import my current inbox (2200 messages)
from an mbox file. The first time I tried this, Columba received a
Java out-of-memory exception. Then I increased the amount of memory
available to the JVM (-Xxm200MB), and tried again. It took over
150MB to scan the inbox, and even after it was completed and showed
me the dialog, the messages only entered my inbox folder at a rate of
about 1 every 2 seconds. Eventually it died (because it ran out of
disk space, my bad) while painfully still trying to push the 2200
messages into the inbox storage.
What is going on in that separation between the parsing and the
writing into the local folders that is so slow?
3) decoding larger messages is really slow, why?
Clicking on larger messages and asking them to be decoded is really
4) it seems to create "*~" backup files in the folder dir, why?
After poking around for a while, I went and looked at the folder
directories, and it had tons of files ending in ~ which seemed to
be a copy of the original message number file. What are these files
for and why were they created?
David Jeske (N9LCA) + http://www.chat.net/~jeske/ + jeske@...