<table><tr><td style="">mwolff added a comment.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D8579" rel="noreferrer">View Revision</a></tr></table><br /><div><div><p>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):</p>

<div class="remarkup-code-block" style="margin: 12px 0;" data-code-lang="text" data-sigil="remarkup-code-block"><pre class="remarkup-code" style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; padding: 12px; margin: 0; background: rgba(71, 87, 120, 0.08);">********* 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 *********</pre></div>

<p>Anyhow, not really related to this patch here, but good to keep in mind for the future</p></div></div><br /><div><strong>INLINE COMMENTS</strong><div><div style="margin: 6px 0 12px 0;"><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D8579#inline-37661" rel="noreferrer">View Inline</a><span style="color: #4b4d51; font-weight: bold;">abstractfilemanagerpluginimportbenchmark.cpp:67</span></div>
<div style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; margin: 0 4px; ">        <span class="n">m_out</span> <span style="color: #aa2211"><<</span> <span style="color: #766510">"Starting import of project "</span> <span style="color: #aa2211"><<</span> <span class="n">m_project</span><span style="color: #aa2211">-></span><span class="n">path</span><span class="p">().</span><span class="n">toLocalFile</span><span class="p">()</span> <span style="color: #aa2211"><<</span> <span class="n">endl</span><span class="p">;</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">        <span style="color: #74777d">// emulate the signal from the ProjectController to the ProjectFilterProvider(s):</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">        <span class="n">emit</span> <span class="n">m_core</span><span style="color: #aa2211">-></span><span class="n">projectController</span><span class="p">()</span><span style="color: #aa2211">-></span><span class="n">projectAboutToBeOpened</span><span class="p">(</span><span class="n">m_project</span><span class="p">);</span>
</div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">why is this required?</p></div></div><br /><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D8579#inline-37660" rel="noreferrer">View Inline</a><span style="color: #4b4d51; font-weight: bold;">abstractfilemanagerpluginimportbenchmark.cpp:131</span></div>
<div style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; margin: 0 4px; background: rgba(251, 175, 175, .7);">    <span style="color: #aa4000">auto</span> <span class="n">core</span> <span style="color: #aa2211">=</span> <span class="n">TestCore</span><span style="color: #aa2211">::</span><span class="n">initialize</span><span class="p">(<span class="bright"></span></span><span class="bright"></span><span class="n"><span class="bright">Core</span></span><span class="bright"></span><span style="color: #aa2211"><span class="bright">::</span></span><span class="bright"></span><span class="n"><span class="bright">NoUi</span></span><span class="p">);</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">    <span style="color: #aa4000">auto</span> <span class="n">core</span> <span style="color: #aa2211">=</span> <span class="n">TestCore</span><span style="color: #aa2211">::</span><span class="n">initialize</span><span class="p">();</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">    <span style="color: #74777d">// attempt to load the "Project Filter" plugin;</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">    <span style="color: #aa4000">if</span> <span class="p">(</span><span class="n">core</span><span style="color: #aa2211">-></span><span class="n">pluginController</span><span class="p">()</span><span style="color: #aa2211">-></span><span class="n">allPluginsForExtension</span><span class="p">(</span><span class="n">QStringLiteral</span><span class="p">(</span><span style="color: #766510">"org.kdevelop.IProjectFilter"</span><span class="p">)).</span><span class="n">size</span><span class="p">()</span> <span style="color: #aa2211"><</span> <span style="color: #601200">1</span><span class="p">)</span> <span class="p">{</span>
</div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">this isn't needed anymore, is it? i.e. it should never happen?</p></div></div></div></div></div><br /><div><strong>REPOSITORY</strong><div><div>R32 KDevelop</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D8579" rel="noreferrer">https://phabricator.kde.org/D8579</a></div></div><br /><div><strong>To: </strong>rjvbb, KDevelop<br /><strong>Cc: </strong>mwolff, kdevelop-devel, njensen, geetamc, Pilzschaf, akshaydeo, surgenight, arrowdodger<br /></div>