performance issues with large numbers of folders
- From: Noah Levitt <nlevitt columbia edu>
- To: balsa-list gnome org
- Subject: performance issues with large numbers of folders
- Date: Tue, 19 Aug 2003 00:57:53 -0400
Hi,
I’m a mutt user, but I want to use balsa, because a terminal
program can’t support the type of i18n that gtk+ programs
can. But so far, I’ve run into performance problems that
prevent me from switching.
I have about 4000 folders under ~/mail. There are a number
spots where balsa hangs because of this. Here are a couple I
have noticed (hopefully the only ones):
• config_views_load, config_views_save: It appears that
there is at least one configuration key for every
folder, and these functions iterate over each of them.
config_views_load runs at startup before the gui pops
up.
config_views_save runs when you close the app, before
the gui disappears.
• scan_mailboxes_idle_cb: Traverses the entire tree of
mailboxes.
scan_mailboxes_idle_cb runs at startup after the gui
pops up, but the whole gui waits on it and appears
frozen (it doesn’t make the little progress bar go).
Each of these takes over 15 seconds on my machine, perhaps
up to a minute.
I can see at least four possible solutions to the problem:
• change balsa so that these things aren’t needed or work
differently somehow
• run these in threads and let the rest of the program get
on about its business
• run them in the main loop, use g_timeout_add or another
of those to have the functions called repeatedly; they
should clock themselves to make sure they never run
longer than 100ms at once
• decide that the many-mailboxes case is rare and that you
won’t cater to it (but these performance issues probably
affect normal users to a lesser extent, too)
All of these options except the 4th look like they’ll
require non-trivial changes to the code. Let’s discuss and
decide on a course of action. :-)
Noah
P.S. This is basically http://bugzilla.gnome.org/show_bug.cgi?id=117223
fleshed out a bit.
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]