Hi there, The last performance analysis that I did* on E-D-S vs. Tracker's RDF store had some problems: a. Certain people didn't want Evolution's UI to be running while the test takes place. b. Another problem was that the test was not replacing but always appending new contacts. c. The test for Tracker isn't using QtContacts' API. d. The Tracker RDF store's test was doing the REPLACE and ORIGINAL in one run, the two might interfere each other a bit. The ORIGINAL query was also leaving behind traces of nco:Affiliation instances. So - To address a. I decided to shut it down and on top of that I decided to use an empty addressbook that I fill up with 1000 contacts once. Then I start running the tests. I did the same thing for Tracker's RDF store. First I make 1000 contacts and then I start running the tests. No softwares are using either of the stores while the tests run. - To address b. I rewrote the test for E-D-S a bit. You can find both tests attached to this E-mail. - I have not yet addressed c. The QtContacts team have posted an E-mail to the Tracker mailing list with some of their numbers: http://mail.gnome.org/archives/tracker-list/2011-March/msg00035.html I expect more numbers coming from them after they have started using Tracker's latest INSERT OR REPLACE feature. - I rewrote the Tracker RDF store's test to address d. (attached too). It has no more indentation of the SPARQL to better mimic what QtContacts will generate and the query was further optimized a bit. Errata: o. I used the branch "sparql-update" of Tracker o. I used --disable-tracker-fts on Tracker (with FTS is Tracker's INSERT OR REPLACE not expected to be as much faster as with FTS. FTS is disabled on Harmattan). Without disabling FTS are in this particular test case (due to INSERT OR REPLACE) results going to be different! Note that I didn't clarify this last time. o. I used default CFLAGS (-g -O2 afaik) on Tracker o. Version in Evolution's about box is 2.30.3 (Debian testing) and E-D-S from Debian testing too. This E-D-S uses a addressbook.db and a addressbook.db.summary file when I look inside the folder. I ran both tests several times and then I took the best scores for each: Evolution Data Server: $ ./eds-test EDS 1000 contacts: 12.449457 (0 not replaced) $ ./eds-test EDS 1000 contacts: 12.388330 (0 not replaced) $ ./eds-test EDS 1000 contacts: 12.967997 (0 not replaced) $ ./eds-test EDS 1000 contacts: 12.391114 (0 not replaced) $ ./eds-test EDS 1000 contacts: 12.553720 (0 not replaced) $ Tracker's RDF store. All contacts are replaced here: ./test-insert-or-replace REPLACE: 1000 contacts: 12.579931 $ ./test-insert-or-replace REPLACE: 1000 contacts: 12.722786 $ ./test-insert-or-replace REPLACE: 1000 contacts: 13.674250 $ ./test-insert-or-replace REPLACE: 1000 contacts: 13.083288 $ ./test-insert-or-replace REPLACE: 1000 contacts: 13.539822 $ *) http://mail.gnome.org/archives/tracker-list/2011-March/msg00033.html Cheers, Philip -- Philip Van Hoof freelance software developer Codeminded BVBA - http://codeminded.be
Attachment:
eds-test.c
Description: Text Data
Attachment:
test-insert-or-replace.vala
Description: Text Data