We're in the middle of debugging some memory issues. We were watch 5 instances of the same app. We stopped 3. The Gen2 Heap size went from about 5M to almost 10M, and the Gen0 and Gen1 heap sizes changed insignificantly.
This is the exact opposite of what I'd expect. I expected it to reduce in size, and would never expect it to increase.
What is going on here?
More details: These are console apps, same physical .exe, different command lines, all doing simple "read file, insert to database" (or vice-versa) work.
We were running in to memory issues and couldn't find it so in desperation added a GC.Collect after each batch run. Doing the has alleviated the memory usage, but doesn't give a clue to what the root problem is.
@S.Skov, the GC heap sizes are all identical for every instance. When closing some of the apps, every single one that was still open had identical heap sizes. This is making us operate under the assumption that the GC was shared amongst all instances of the same program. We're using Process Explorer from sysinternals to measure the heap size.
tl;dr version: Memory usage was out of control. GC.Collect() "fixes" the symptom but not the problem. Also the GC Heap sizes are always identical amongst all instances of the same app.
apologies: I also may be doing a poor job at effectively transcribing our team's discussions and hand-waving in to something meaningful on the web.