How to improve balsa speed with HUGE mailboxes



Hi,
I started to find out, where is the reason, so balsa is very slow when 
opening HUGE mailbox.
I use local mailboxes in mbox style.
Some time ago, there were discussion, and somebody told that using 
indexing for local mailboxes should help.
But, as I found, it is NOT true. Most time is spent on sorting and GUI 
stuff.
I checked what takes much time, and these functions are shown below.
I used mbox which has 6200 messages (the xfs mailing list I often read).
All takes about 42 seconds!!!
I have Celeron 466 with 384 MB RAM. Tests made under no load.

libbalsa_mailbox_local_open:
here we call:
	mx_open_mailbox						4.6s
	libbalsa_mailbox_load_messages		6.5s

balsa_index_set_threading_type:
here we call:
	a loop with:
			balsa_index_add			11.5s
	gtk_clist_sort						19.5s.

So half of time we spent on sorting (default is by message number).
If we sort by default sort type, when opening the mailbox we sort thing
which is already sorted!

So, if we open mailbox and sort type is BALSA_SORT_NO and threading is 
BALSA_INDEX_THREADING_FLAT, we simply may
SKIP sorting, and we open mailbox 50% faster.
I think it is worth to implement, because I think that persons which use
huge mailboxes use FLAT threading anyway (or they have 2xAthlon 1.4 ;)

Anyway, the sorting function is EXTREMELLY inefficient:
it takes 20 seconds to sort 6200 elements, which are already sorted!
Maybe it would be better to sort it not using gtk_clist_sort, but do it
outside, and populate a clean gtk_clist?
Or improve the sorting function (I don't know how :), but this wouldn't 
help much.

Any comments welcome.

Best regards

Olaf Fraczyk, <olaf@cbk.poznan.pl>



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]