OutputModel performance

Kevin Funk krf at gmx.de
Wed Feb 6 12:25:17 UTC 2013


Hey,

I recently noticed that I get serious UI lockups when running a 'make install' 
job inside KDevelop for larger projects such as kdelibs. 'make install' here 
may produce roughly ~4500 lines of output in just a few seconds.

All these lines are parsed in the action/error filter in the output view tool. 
I suspected that using QRegExp there in the main thread is a serious 
bottleneck which I tried to evaluate using callgrind. Attached [1] is a 
callgrind run that had instrumentation enabled just before the make job was 
started.

Callgrind isn't really useful to tell if this will cause UI hickups, of 
course. It just shows that there are *a lot of* calls to QRegExp::indexIn(), 
namely ~145000, for (just) 4500 lines of output.

So, the question here:
- Did anyone of you guys experience similar issues just to begin with?
- Do you think it makes sense to optimize that?
  E.g. move the regexp logic out of the main thread?

Greets

[1] http://krf.kollide.net/files/images/outputmodel-performance.png

-- 
Kevin Funk


More information about the KDevelop-devel mailing list