[Akonadi] [Bug 334218] synchronizations of large folders with filesystem contents hogs a Sandybridge core for minutes stat()ing every file in it
Martin Steigerwald
Martin at Lichtvoll.de
Sat May 3 13:39:44 BST 2014
https://bugs.kde.org/show_bug.cgi?id=334218
--- Comment #10 from Martin Steigerwald <Martin at Lichtvoll.de> ---
Sergio, I tried:
107 QStringList listNew() const
108 {
109 static int count = 0; count++;
110 static int elapsed = 0;
111
112 QDir d( path + QString::fromLatin1( "/new" ) );
113 d.setSorting(QDir::NoSort);
114
115 QTime t;
116 t.start();
117 QStringList list = d.entryList( QDir::Files );
118 elapsed += t.elapsed();
119 kDebug() << "PERF: listNew NoSort " << count << elapsed << "\n";
120 return list;
121
122 //return d.entryList( QDir::Files );
123 }
124
125 QStringList listCurrent() const
126 {
127 static int count = 0; count++;
128 static int elapsed = 0;
129
130 QDir d( path + QString::fromLatin1( "/cur" ) );
131 d.setSorting(QDir::NoSort);
132
133 QTime t;
134 t.start();
135 QStringList list = d.entryList( QDir::Files );
136 elapsed += t.elapsed();
137 kDebug() << "PERF: listCurrent NoSort " << count << elapsed <<
"\n";
138 return list;
139
140 //return d.entryList( QDir::Files );
141 }
as well as your
- std::cout << "PERF: listNew NoSort " << count << elapsed << "\n";
+ kDebug() << "PERF: listNew NoSort " << count << elapsed << "\n";
I see no output on konsole or in ~/.xsession-errors even with full debug
enabled in kdebugdialog before starting akonadi again.
Additionally I look at the callgrind files again and I still think they are
quite different.
The nodirsorting callgrind-vcard.26128.1 has:
- QDir::entryList
- QAlgorithmsPrivate::qSortHelper
- QAlgorithmsPrivate::qSortHelper
- QDirSortItemComparator::operator
- QString::compare
as first 5 out of first 6 entries. And none of it has a very long bar.
Yet the old callgrind-vcard.28282.1 has
- QAlgorithmsPrivat::qSortHelper, lr 145684.95, lr per call as the first of
the entries and it has a very long outstanding bar. This very long outstanding
bar is basically gone in the new callgrind run. Just look at each
Just look at these two files with kcachegrind to me they look quite different
in the old the sort stuff is dominating everything else by a factor of 10 at
least, in the new it looks way more balanced.
So somewhere QDir may still sort something, but not at the original place
anymore. At least thats my bet on looking at the data. I wonder whether
something else is using QDir as well and did not disable sorting and we see
this now.
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the Kdepim-bugs
mailing list