[PATCH] Cache returned KIconLoader pixmaps in 4.5.2

Matthias Fuchs mat69 at gmx.net
Mon Sep 13 10:09:15 BST 2010

Am Montag 13 September 2010, 04:57:18 schrieb Michael Pyne:
> On Monday, September 13, 2010 00:20:40 Matthias Fuchs wrote:
> > Works really great now. I have a question though:
> > 
> > When running my small test program the icon gets cached and then reused,
> > though if I run the test again -- i.e. start the program again -- it gets
> > also cached again and then reused, but shouldn't it still be in the cache
> > from running the program the first time?
> > Or does the cache gets cleaned up very fast?
> Define "cache". There are two:
> 1. A process-shared cache, but the catch is that the data must still be
> decoded from PNG (which is how both QImage and QPixmap stream it to
> storage). 2. A process-local pixmap cache. This essentially stores
> references to the QPixmap that had been read from cache 1 so that it is
> easy to refer to in the future. These pixmaps are already in either X
> server or GPU memory which is why they're much faster.

Is there a specific reason the pixmap cache is process-local instead of 
process-shared? The reason I am asking this is that the creation is very 
expensive as noticed before.

In any case the attached patch speeds up a warm pixmap cache by 25%, I know 
looking up is very fast already but imo this patch does not make the code 
harder to understand but still gives a small speed gain.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: kiconloader.diff
Type: text/x-patch
Size: 1546 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20100913/d1933291/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 230 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20100913/d1933291/attachment.sig>

More information about the kde-core-devel mailing list