I've taken the following Snapshots for analysis:
Please note the "objects" statistic: After the initial "Load" (Snapshot 2), I have 956.4 K objects. Then I show "signals" (Snapshot 3), and the number of objects increases to 2.97 M. Snapshot 4 ("root) shows going back to the same program-state as Snapshot 2. You can see that:
- The number of "objects" decreases to 965.8 K, almost what it was in Snapshot 2 (small leak somewhere, a different problem)
- The ".NET, used" memory in Snapshot 4 is similarly reduced to that of Snapshot 2
Snapshots 5 & 6 are a repeat of Snapshots 3 & 4, with quite similar results.
However, the ".NET, total" does not decrease! This is my problem!
I cannot figure out why this is, and I've read all your documentation and techniques.
What is the proper technique for figuring out why the ".NET, total" memory is never being freed?
My program is a C# / WPF application, and it uses as it's Model a CLI layer, written in CLI / C++. (I'm not sure but I think CLI / C++ falls under "Managed Memory"). Is that at all interesting? The CLI / C++ layer returns pointers to objects, which the GUI cannot really dispose of.
I would appreciate any guidance as to how I find the reason that the ".NET, total" memory is never decreasing, although "objects" and ".NET, used" seem to be being reduced correctly.
Thanks in advance,