
Quoting Ralf Stephan <ralf@...748...>:
My strategy to show that there is at least some of the huge memory increase due to allocation through the GC was that I looked at what valgrind describes as leak (but really is GC-allocated), and indeed a part of that grew with the overall increase. That part is what I mailed you the backtrace of.
Ok... I guess I'm just unclear on where we're going with this. It does suggest that the leaks are of higher-level objects, rather than leaking image buffers directly.
It might be worthwhile to audit the refcounting of NRArenaItems done by the patterns code. Remember that NRArenaItems start with an initial refcount of one, so unless a pointer is retained locally, there ought to be a balacing unref somewhere near where one is created.
Since we are seeing a lot of leaked memory from conventional
malloc(),
I cannot comment on the 80% not GC-allocated but valgrind does not tell me about it. You mention it would be leaking bitmap memory. Why wouldn't valgrind show that? Can you explain?
I can't. Valgrind really should report any memory still unfreed at the time the process exits. Maybe that memory is finally getting freed at final shutdown, but I don't see how...
-mental