https://bugs.freedesktop.org/show_bug.cgi?id=60851
--- Comment #6 from Patrick Ohly <patrick.ohly(a)gmx.de> ---
Collabora enhanced performance in recent folks. While re-doing benchmarks I
noticed that the worst-case performance for 1000 contacts isn't as bad as I
remember it. However, I have not done an exact comparison.
The patch in
https://bugzilla.gnome.org/show_bug.cgi?id=694385 is still
relevant, though. Here's a comparison with TEST_DBUS_QUIET=1
TESTPIM_TEST_ACTIVE_NUM=2000 TESTPIM_TEST_ACTIVE_RESPONSE=-1 and filling the
address books one-by-one while folks processes the changes.
I used an updated testpim.py which prints all samples instead of checking them.
TESTPIM_TEST_ACTIVE_RESPONSE=-1 enables that mode.
stats (
https://github.com/rustyrussell/stats) is used to calculate
min-max(avg) for each phase. Full files will be attached.
Without patch:
$ stats folks-master-unpatched-2000.log
testActive (__main__.TestContacts)
TestContacts.testActive - reconfigure active address books several times ...
Pinging server at intervals of 0.200000s.
full view: ping duration: 0.012624-137.164563(45.7348+/-65)
contact data: ping duration: 0.005966-0.030444(0.0161076+/-0.0069)
['', 'a', 'b', 'c'] -> []: ping duration:
0.008605-0.763513(0.386059+/-0.38)
[] -> ['c']: ping duration: 0.008072-1.226016(0.149534+/-0.38)
['c'] -> ['b']: ping duration: 0.004165-0.836381(0.106718+/-0.26)
['b'] -> ['b', 'c']: ping duration:
0.005579-1.218825(0.145583+/-0.38)
['b', 'c'] -> ['a']: ping duration:
0.008640-1.261694(0.158903+/-0.36)
['a'] -> ['a', 'c']: ping duration:
0.005384-1.210349(0.143487+/-0.38)
['a', 'c'] -> ['a', 'b']: ping duration:
0.004604-0.328148(0.0475674+/-0.099)
['a', 'b'] -> ['a', 'b', 'c']: ping duration:
0.006383-1.224438(0.150367+/-0.38)
['a', 'b', 'c'] -> ['']: ping duration:
0.011664-1.227834(0.198583+/-0.38)
[''] -> ['', 'c']: ping duration:
0.005088-1.201952(0.143017+/-0.37)
['', 'c'] -> ['', 'b']: ping duration:
0.004293-0.313067(0.045124+/-0.095)
['', 'b'] -> ['', 'b', 'c']: ping duration:
0.011554-1.373705(0.27695+/-0.52)
['', 'b', 'c'] -> ['', 'a']: ping duration:
0.004793-1.213316(0.158278+/-0.35)
['', 'a'] -> ['', 'a', 'c']: ping duration:
0.005222-1.234311(0.149249+/-0.38)
['', 'a', 'c'] -> ['', 'a', 'b']: ping
duration:
0.004743-0.122250(0.0208045+/-0.034)
['', 'a', 'b'] -> ['', 'a', 'b',
'c']: ping duration:
0.005526-1.225899(0.146111+/-0.38)
ok
----------------------------------------------------------------------
Ran 1 test in 905.721s
OK
Note the 137s maximum response time during populating the data ("full view").
With patch:
$ stats folks-master-patched-2000.log
testActive (__main__.TestContacts)
TestContacts.testActive - reconfigure active address books several times ...
Pinging server at intervals of 0.200000s.
full view: ping duration: 0.004023-0.103919(0.0433612+/-0.025)
contact data: ping duration: 0.005415-0.037208(0.0193849+/-0.0088)
['', 'a', 'b', 'c'] -> []: ping duration:
0.011281-0.751190(0.381236+/-0.37)
[] -> ['c']: ping duration: 0.004249-0.028754(0.0124643+/-0.0061)
['c'] -> ['b']: ping duration: 0.003715-0.207745(0.0281574+/-0.046)
['b'] -> ['b', 'c']: ping duration:
0.006746-0.032266(0.0171924+/-0.0075)
['b', 'c'] -> ['a']: ping duration:
0.005372-0.378336(0.0332488+/-0.076)
['a'] -> ['a', 'c']: ping duration:
0.003991-0.034730(0.0185342+/-0.0083)
['a', 'c'] -> ['a', 'b']: ping duration:
0.004354-0.205181(0.0245261+/-0.04)
['a', 'b'] -> ['a', 'b', 'c']: ping duration:
0.004429-0.053523(0.0222038+/-0.013)
['a', 'b', 'c'] -> ['']: ping duration:
0.007220-0.567568(0.0461981+/-0.13)
[''] -> ['', 'c']: ping duration:
0.004500-0.031244(0.0149976+/-0.0077)
['', 'c'] -> ['', 'b']: ping duration:
0.005897-0.218556(0.0247215+/-0.043)
['', 'b'] -> ['', 'b', 'c']: ping duration:
0.004165-0.045688(0.0226147+/-0.011)
['', 'b', 'c'] -> ['', 'a']: ping duration:
0.004427-0.572938(0.0389641+/-0.1)
['', 'a'] -> ['', 'a', 'c']: ping duration:
0.004139-0.041826(0.021645+/-0.011)
['', 'a', 'c'] -> ['', 'a', 'b']: ping
duration:
0.007139-0.221841(0.0326704+/-0.039)
['', 'a', 'b'] -> ['', 'a', 'b',
'c']: ping duration:
0.004101-0.060816(0.0274812+/-0.017)
ok
----------------------------------------------------------------------
Ran 1 test in 946.532s
OK
The maximum response time during loading gets reduced to 0.1s.
On the downside, total runtime increases by 4%.
When running the test so that all data is already in EDS when folks starts,
then the "full view" max response time is 2.3s without patch and 0.2s with.
Total runtime goes up from 797s to 848s (6%) - this cannot be compared directly
with the other setup, because loading no longer overlaps with generating the
data.
--
You are receiving this mail because:
You are on the CC list for the bug.