Replacing QRegExp with CMake RegularExpression

M Breugelmans mbr.nxi at gmail.com
Sun Nov 2 19:27:25 UTC 2008


On Sun, Nov 2, 2008 at 2:59 AM, Andreas Pakulat <apaku at gmx.de> wrote:
> Hi,
>
> so I thought it might be interesting to try this out. Turned out to be a
> bit more complex than I initially thought and unfortunately it also
> introduces one regression with the kde4addunittest test. (I'm seeing an
> error message from RegularExpression about nested "*?+", so that might be a
> hint).

Weird, that test still runs fine for me after applying your patch.

> Having done a quick time kdevelop like test the startup speed of kdevelop
> including loading of kdevplatform was reduced frmo 15 to 11 seconds on my
> old machine.

That's an impressive difference.

> The patch is attached for anyone to look at, whats a bit scary is the
> conversion between QString and char* for the RegularExpression class. I'm
> actually thinking about seeing wether converting to QChar helps with that
> or wether using that class drains performance again.
>

Constructing RE's is typically expensive, depending on the pattern it
can cost as much as a search. QRegExp actually caches compiled RE's
behind the scenes (it's #if-deffed though, I did not check if it's
enabled), but the cmake one for sure doesn't.

Next to the performance gain using kitware's implementation would
guarantee 100% identical behavior.


Manuel




More information about the KDevelop-devel mailing list