Fwd: OutputModel performance

Milian Wolff mail at milianw.de
Thu Feb 7 17:37:03 UTC 2013


> > I can see that I accidentally sent this to Andreas only - sorry about
> > that.
> > 
> > A test like that already exists in outputmodeltest. It benchmarks the
> > different output filtering strategies.
> > 
> > Here is a sample from a test I just ran:
> > QDEBUG : KDevelop::OutputModelTest::benchmarkAddlinesNofilter() average UI
> > lockup in ms:  0.263682
> > QDEBUG : KDevelop::OutputModelTest::benchmarkAddlinesCompilerfilter()
> > average UI lockup in ms:  8.64179
> > QDEBUG : KDevelop::OutputModelTest::benchmarkAddlinesScriptErrorfilter()
> > average UI lockup in ms:  1.36318
> > QDEBUG :
> > KDevelop::OutputModelTest::benchmarkAddlinesStaticAnalysisfilter()
> > average UI lockup in ms:  0.228856
> > 
> > Maybe if we got a sample of the compileoutput that seems to cause trouble,
> > rewrote the test a little to feed each line to the matching code and do
> > timing on matches. If one or more of the lines sticks out timing wise, it
> > should be fairly simple to find the regex that performs badly on the
> > line(s).
> Here's some sample output to play with: http://pastebin.com/FPEcUWP4
> (4400 lines, flushed in ~15 seconds). If this is done inside KDevelop, I get
> a rather sluggish UI with KDevelop keeping 1 core busy at 100%.
> I can do some more profiling next week probably (busy writing exams atm).
> Then I can also have a more detailled look at the regexps used.

What should be done here:

a) Take a look at the RegExp's and try to optimize them (i.e. by making them 
more explicit, i.e. adding ^,$ stuff or similar).

b) create an active worker object that is moved to a thread, then let that do 
the classification. I.e.:

output line (QString) -> active object, run regexps -> (Categorized Data) -> 

c) also ensure the regexps are only compiled once - but I think that is 
already the case, no?

d) wait for Qt5 - the regexp stuff there is much much better

Milian Wolff
mail at milianw.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/kdevelop-devel/attachments/20130207/be99ac2d/attachment.sig>

More information about the KDevelop-devel mailing list