https://bugs.kde.org/show_bug.cgi?id=334218
--- Comment #14 from Martin Steigerwald <mar...@lichtvoll.de> --- Git commit 4dd5cb7fcb37f9da481d8324421428a0028e9e2d by Martin Steigerwald. Committed on 03/05/2014 at 14:52. Pushed by steigerwald into branch 'master'. Do not sort the directory entry list in listNew() and listCurrent(): According to callgrind dumps at https://bugs.kde.org/show_bug.cgi?id=334218#c4 QDir sorts the list of directory entries unless specified otherwise. After disabling the sorting the callgrind is quite different already: https://bugs.kde.org/show_bug.cgi?id=334218#c7 This already helps shortening the time to synchronize folders visibly, but KMail gets still blocked for half a minute or more. There is another occurence of QDir entry sorting in keycache.cpp which the next commit will address. Thanks to Sergio and David for help and pointing out how to disable the sorting. REVIEW: 117975 DIGEST: Huge performance improvement for POP3 users with large maildir. M +2 -0 resources/maildir/libmaildir/maildir.cpp http://commits.kde.org/kdepim-runtime/4dd5cb7fcb37f9da481d8324421428a0028e9e2d --- Comment #15 from Martin Steigerwald <mar...@lichtvoll.de> --- Git commit 41be4d27dab49d600e3bd93cfc3804a347243257 by Martin Steigerwald. Committed on 03/05/2014 at 14:53. Pushed by steigerwald into branch 'master'. Also do not sort directory entries in listCurrent and listNew in key cache: QDir sorts the list of directory entries unless specified otherwise. The last commit already disabled the sorting in maildir.cpp. This commit completes the work and makes the remaining sorting calls in the callgrind dumps at https://bugs.kde.org/show_bug.cgi?id=334218#c7 go away completely as demonstrated in the callgrind dumps at: https://bugs.kde.org/show_bug.cgi?id=334218#c12 Subjectively this has a huge impact on the performance of KMail with huge maildir. KMail hardly blocks anymore on folder changes and feels much more responsive now. Akonadi maildir resource went from hogging a Sandy Bridge core for minutes to not appearing using 100% of one core in even one averaged 10 second interval in atop. I hardly see it in atop at all anymore, except when accessing very large folders such as one with Linux Kernel mailing list and more than 245000 unread mails. Thanks to Sergio for pointing out the remaining sorting calls in the second callgrind dump and for help. Now the bottleneck appears to be MaildirResource::listRecursive but I do not know whether further optimization is necessary at this point. Both changes tested with kdepimlibs master as of today and KMail 4.12.4 from Debian unstable packages with an enormous maildir including a folder for Linux Kernel mailing list with more than 245000 unread mails. REVIEW: 117975 DIGEST: Huge performance improvement for POP3 users with large maildirs. M +2 -0 resources/maildir/libmaildir/keycache.cpp http://commits.kde.org/kdepim-runtime/41be4d27dab49d600e3bd93cfc3804a347243257 -- You are receiving this mail because: You are the assignee for the bug. _______________________________________________ Kdepim-bugs mailing list Kdepim-bugs@kde.org https://mail.kde.org/mailman/listinfo/kdepim-bugs