[PATCH] speedup in KMimeTypeFactory?
Matt Rogers
mattr at kde.org
Mon Oct 20 03:55:57 BST 2008
On Sun, Oct 19, 2008 at 04:23:31PM +0200, Olivier Goffart wrote:
> Le dimanche 19 octobre 2008, Matt Rogers a écrit :
> > Hi,
> >
> > The attached patch makes some changes to the matchFileName function in
> > kmimetypefactory.cpp which gets called a lot, especially when browsing
> > files in the file manager when trying to open a file.
> >
> > Depending on how you read the callgrind output, it's either a 5% (incl.
> > column) speedup or a 0.5% (self column) speedup. I can't remember which is
> > the more important number.
>
> The 'incl' is the most important. The self doesn't matter at all (it's
> included in the 'incl' anyway)
>
> I would say that what you have to compare is the 'Incl.' absolute cost divided
> by the 'Called'
>
Thanks for the info.
>
> Caching the indexOf('[') certainly helps.
>
> But changing from the operator[] to startsWith/endsWith is probably slower
> (the operator[] is inline and fast, while endsWith do lot of comparison and
> don't know that we are comparing only one byte)
>
ok, i'll change that and reprofile. I had compiled with -fno-inline, so that's
probably why I see the skew. There are startsWith and endsWith overrides that
do take a QChar rather than a QString, and when I looked, it did look like
they knew we were comparing one byte.
> I don't know if the static QChar really helps.
>
It saved several hundred thousand QChar allocations, because the function is
called so much.
Thanks
--
Matt
More information about the kde-core-devel
mailing list