[Kolab-devel] Max number of contacts
faure at kde.org
Thu Nov 4 20:41:06 CET 2004
On Tuesday 02 November 2004 13:56, Martin Konold wrote:
> Am Freitag, 29. Oktober 2004 16:15 schrieb Bernhard Reiter:
> > > The question is: How much resources are required to deal with 8000
> > > contacts or 8000 incidences (like events or tasks).
> > I got a report that an older version of KAddressbook
> > was confirmed to crash somewhere beyond 8000 contacts.
> > This is what I am asking.
> Ok, then someone has to test it.
You're lucky that we have no more bugs left to fix, so I had time to test this :)
I generated 10.000 contacts with a small perl script into a CSV file,
imported it into kontact's kaddressbook part, then chose to save them into
a kolab resource.
This pointed out a few things that could be improved right away, which I fixed.
But the conclusion is that kontact handles this fine for sure. No crash.
The only thing is that when loading [or saving] all those contacts the GUI freezes
for a while. We might want to use QProgressDialogs to improve the user
I think the most important thing to check is the loading (not the saving of
such contacts, since saving all of them at once is only one of the use cases,
it won't happen to those getting the contacts via a company-wide shared folder,
or those adding contacts day after day, and when importing them it's done only once anyway)
-- whereas the loading happens every time kontact is started.
Some data on the loading:
* Starting and quitting (with Alt+F4 during the loading, so no time is lost) kontact
(in kaddressbook mode) with those 10000 contacts takes 30s.
For comparison, starting and quitting kontact without any contacts to load takes 2s.
* According to callgrind, two thirds of the instructions (15.2 billion) are spent in the
incidencesKolab() call, and one third (8.2 billion) in loadContact()
(mostly in QDom XML loading, as expected).
I think I found a way to optimize incidencesKolab(), testing that now.
David Faure, faure at kde.org, sponsored by Trolltech to work on KDE,
Konqueror (http://www.konqueror.org), and KOffice (http://www.koffice.org).
More information about the devel