QMovie leaking lots of pixmap resources

Matthias Ettrich ettrich at trolltech.com
Thu Jan 1 20:05:30 GMT 2004


On Thursday 01 January 2004 19:39, Martijn Klingens wrote:
> On Thursday 01 January 2004 19:06, Dirk Mueller wrote:
> > they might be a trigger but not the cause. the pixmapcache size is
> > limited to 1MB in total, so it can't leak, even though you found an
> > inefficiency here (I agree the if should be changed to timer >= 0 && loop
> > >= 0).
>
> The cache doesn't seem to work properly though (at least on Qt 3.2) - the
> pixmap memory as reported by xrestop grows well above 2 Mb (it stops at
> 2342kb here). If I explicitly call setCacheLimit( 512 ) to use a half Mb
> cache the pixmap memory used by Kopete still grows till 1451 kb until it
> stops leaking. When I close the chat window the pixmap memory drops back to
> 147 kb. A new chat window eats some more, directly after opening one
> there's about 500 kb in use. In other words, a 512 kb pixmap cache actually
> eats a lot more, over a megabyte, and that's assuming all other pixmaps
> that xrestop reports are 'uncached'.

Quoting the doumentation:

    The cache becomes full when the total size of all pixmaps in the
    cache exceeds cacheLimit(). The initial cache limit is 1024 KByte
    (1 MByte); it is changed with setCacheLimit(). A pixmap takes
    roughly width*height*depth/8 bytes of memory.

The forumula width*height*depth/8 bytes (also used in the code) is not 
accurate, it ignores e.g. any mask or the alpha channel.

Matthias





More information about the kde-core-devel mailing list