The lower bound trending upwards is certainly disturbing, but, as you say, memory allocation is a dark art, so it isn't entirely implausible. I would suggest getting a good understanding of how the Garbage Collector works in .NET. It's kind of an interesting topic, though I know of no single source to suggest. The key, in my mind, is understanding how the GC recognizes that some object is unreachable. It seems to me that the most likely problem here is that some resource is unreachable in your mind (you certainly believe it to be discarded), yet the GC object map suggests that the item really isn't unreachable, so it never feels safe in recovering that memory. Of course, that can be quite the subject in itself.