
On Mon, 2005-06-27 at 11:48 +0200, Ralf Stephan wrote:
(Also the symptoms -- amount of leakage being related to screen area -- are consistent with leaking bitmap memory, which we never allocate with the collector.)
As said before, 20% is here:
The question is, why isn't that 20% being collected?
The most obvious thing would be that, since the XML nodes are also refcounted (via Inkscape::GC::Anchored), that there is either:
1) improper refcounting by SPObjects which reference the XML nodes
2) SPObjects being leaked while they still reference XML nodes
Either one would result in pinning the XML nodes so they could not be collected by the collector.
There are also other, more esoteric possibilities (but those wouldn't generally be so consistent).
If it were #1, you could expect to see most (rather than a smaller percentage) of the leaked memory coming from the GC heap.
Since we are seeing a lot of leaked memory from conventional malloc(), that tends to suggest that garbage-collected memory is being pinned by references from the leaked conventional objects -- i.e. scenario #2.
-mental