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

Milian Wolff noreply at phabricator.kde.org
Thu Nov 2 10:20:49 UTC 2017


mwolff added a comment.


  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):
  
    ********* Start testing of TestProjectFilter *********                                    ********* Start testing of TestProjectFilter *********
    Config: Using QtTest library 5.9.2, Qt 5.9.2 (x86_64-little_endian-lp64 shared (dynamic)  Config: Using QtTest library 5.9.2, Qt 5.9.2 (x86_64-little_endian-lp64 shared (dynamic)
    PASS   : TestProjectFilter::initTestCase()                                                PASS   : TestProjectFilter::initTestCase()
    PASS   : TestProjectFilter::bench(baseline-1716)                                          PASS   : TestProjectFilter::bench(baseline-1716)
    RESULT : TestProjectFilter::bench():"baseline-1716":                                      RESULT : TestProjectFilter::bench():"baseline-1716":
         1.8 msecs per iteration (total: 60, iterations: 32)                                       1.6 msecs per iteration (total: 52, iterations: 32)
    PASS   : TestProjectFilter::bench(baseline-3276)                                          PASS   : TestProjectFilter::bench(baseline-3276)
    RESULT : TestProjectFilter::bench():"baseline-3276":                                      RESULT : TestProjectFilter::bench():"baseline-3276":
         4.1 msecs per iteration (total: 67, iterations: 16)                                       2.8 msecs per iteration (total: 90, iterations: 32)
    PASS   : TestProjectFilter::bench(baseline-8591)                                          PASS   : TestProjectFilter::bench(baseline-8591)
    RESULT : TestProjectFilter::bench():"baseline-8591":                                      RESULT : TestProjectFilter::bench():"baseline-8591":
         10 msecs per iteration (total: 81, iterations: 8)                                         8.3 msecs per iteration (total: 67, iterations: 8)
    PASS   : TestProjectFilter::bench(baseline-12221)                                         PASS   : TestProjectFilter::bench(baseline-12221)
    RESULT : TestProjectFilter::bench():"baseline-12221":                                     RESULT : TestProjectFilter::bench():"baseline-12221":
         15 msecs per iteration (total: 62, iterations: 4)                                         10 msecs per iteration (total: 85, iterations: 8)
    PASS   : TestProjectFilter::bench(defaults-1716)                                          PASS   : TestProjectFilter::bench(defaults-1716)
    RESULT : TestProjectFilter::bench():"defaults-1716":                                      RESULT : TestProjectFilter::bench():"defaults-1716":
         27 msecs per iteration (total: 54, iterations: 2)                                         9.8 msecs per iteration (total: 79, iterations: 8)
    PASS   : TestProjectFilter::bench(defaults-3276)                                          PASS   : TestProjectFilter::bench(defaults-3276)
    RESULT : TestProjectFilter::bench():"defaults-3276":                                      RESULT : TestProjectFilter::bench():"defaults-3276":
         51 msecs per iteration (total: 51, iterations: 1)                                         18 msecs per iteration (total: 75, iterations: 4)
    PASS   : TestProjectFilter::bench(defaults-8591)                                          PASS   : TestProjectFilter::bench(defaults-8591)
    RESULT : TestProjectFilter::bench():"defaults-8591":                                      RESULT : TestProjectFilter::bench():"defaults-8591":
         165 msecs per iteration (total: 165, iterations: 1)                                       55 msecs per iteration (total: 55, iterations: 1)
    PASS   : TestProjectFilter::bench(defaults-12221)                                         PASS   : TestProjectFilter::bench(defaults-12221)
    RESULT : TestProjectFilter::bench():"defaults-12221":                                     RESULT : TestProjectFilter::bench():"defaults-12221":
         208 msecs per iteration (total: 208, iterations: 1)                                       74 msecs per iteration (total: 74, iterations: 1)
    PASS   : TestProjectFilter::cleanupTestCase()                                             PASS   : TestProjectFilter::cleanupTestCase()
    Totals: 10 passed, 0 failed, 0 skipped, 0 blacklisted, 2859ms                             Totals: 10 passed, 0 failed, 0 skipped, 0 blacklisted, 2899ms
    ********* Finished testing of TestProjectFilter *********                                 ********* Finished testing of TestProjectFilter *********
  
  Anyhow, not really related to this patch here, but good to keep in mind for the future

INLINE COMMENTS

> abstractfilemanagerpluginimportbenchmark.cpp:67
>          m_out << "Starting import of project " << m_project->path().toLocalFile() << endl;
> +        // emulate the signal from the ProjectController to the ProjectFilterProvider(s):
> +        emit m_core->projectController()->projectAboutToBeOpened(m_project);

why is this required?

> abstractfilemanagerpluginimportbenchmark.cpp:131
> +    auto core = TestCore::initialize();
> +    // attempt to load the "Project Filter" plugin;
> +    if (core->pluginController()->allPluginsForExtension(QStringLiteral("org.kdevelop.IProjectFilter")).size() < 1) {

this isn't needed anymore, is it? i.e. it should never happen?

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/5dc377d2/attachment-0001.html>


More information about the KDevelop-devel mailing list