D7995: KDevelop: address dirwatching inefficiency (WIP/PoC)
René J.V. Bertin
noreply at phabricator.kde.org
Wed Sep 27 21:25:53 UTC 2017
rjvbb updated this revision to Diff 20013.
rjvbb added a comment.
updated as requested (except for the bit[s] that can go into a dedicated commit) and rebased against the master branch (but developed/tested against the 5.2 branch).
This revision also introduces a benchmark that times low-level project import with concurrent dirwatcher feeding, as much as possible as it would be done in an actual KDevelop session. A single AbstractFileManager instance is used to load all directories passed on the commandline as projects.
I had to add 2 (protected) methods to `AbstractFileManagerPlugin` : one to query the number of directories being watched. The other method to tell the plugin to "detach" the project. This consists of deleting the project's dirwatcher and stopping associated background jobs and is normally done in reaction to a signal sent from the ProjectController.
The possibility exists to benchmark the original (current) KDirWatch approach for comparison: set BENCHMARK_ORIGINAL_DIRWATCHER to activate this feature.
CHANGES SINCE LAST UPDATE
https://phabricator.kde.org/D7995?vs=19960&id=20013
REVISION DETAIL
https://phabricator.kde.org/D7995
AFFECTED FILES
kdevplatform/project/CMakeLists.txt
kdevplatform/project/abstractfilemanagerplugin.cpp
kdevplatform/project/abstractfilemanagerplugin.h
kdevplatform/project/filemanagerlistjob.cpp
kdevplatform/project/filemanagerlistjob.h
kdevplatform/project/projectwatcher.cpp
kdevplatform/project/projectwatcher.h
kdevplatform/project/tests/CMakeLists.txt
kdevplatform/project/tests/abstractfilemanagerpluginimportbenchmark.cpp
To: rjvbb, #kdevelop, mwolff
Cc: aaronpuchert, arrowdodger, kfunk, dfaure, mwolff, brauch, kdevelop-devel, geetamc, Pilzschaf, akshaydeo, surgenight
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kdevelop-devel/attachments/20170927/f594d693/attachment.html>
More information about the KDevelop-devel
mailing list