D8579: KDevelop: project filter support in the abstractfilemanagerplugin import benchmark

René J.V. Bertin noreply at phabricator.kde.org
Thu Nov 2 12:13:52 UTC 2017


rjvbb marked 2 inline comments as done.
rjvbb added a comment.


  In https://phabricator.kde.org/D8579#163353, @mwolff wrote:
  
  > thanks for the numbers and profile on the project filter, I guess I'll need to port it away from QRegExp to QRegularExpression, which will mean some custom parser to transfer unix style matching to regular expressions patterns. But it does seem to help (left is status quo, right is QRegularExpression with manual conversion of the default patters to regular expressions):
  
  
  ...
  
  > Anyhow, not really related to this patch here, but good to keep in mind for the future
  
  Indeed. Are those gains still visible in real world usage - it doesn't look like filtering is a bottleneck operation like the dirwatcher population currently is? In a real world project import, a properly set up filter would exclude an in-tree build directory first, thereby skipping a whole bunch of files that would otherwise be excluded one by one. (IOW, it might already be very effective to optimise the order of the entries in the default filter.)

INLINE COMMENTS

> mwolff wrote in abstractfilemanagerpluginimportbenchmark.cpp:67
> why is this required?

It replaces a full-blown ProjectController initialisation, and tells the ProjectFilterProvider to set up the project filter. Without that signal, the filter doesn't do its full job (it only filters out the .kdev4 directories).

I tried setting up the ProjectController, but got crashes while plugins were being loaded that aren't of interest anyway, and in addition we'd have to import the test projects through the ProjectController in order for it to send out that signal. I don't think we want that here.

> mwolff wrote in abstractfilemanagerpluginimportbenchmark.cpp:131
> this isn't needed anymore, is it? i.e. it should never happen?

I suppose it should indeed never happen. The call itself is required though (I checked again), and if it fails it will do so quietly and results will be for project import without filtering. I wouldn't mind putting an assert here, but a version that doesn't disappear in release builds.

REPOSITORY
  R32 KDevelop

REVISION DETAIL
  https://phabricator.kde.org/D8579

To: rjvbb, #kdevelop
Cc: mwolff, kdevelop-devel, njensen, geetamc, Pilzschaf, akshaydeo, surgenight, arrowdodger
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kdevelop-devel/attachments/20171102/49d56d28/attachment.html>


More information about the KDevelop-devel mailing list