My application (C # .NET 4.0) has been running for several days, updating the simulated account to reflect changes in prices purchased in the SQLite database.
All I need on any given date is an account in its current state and latest prices. I expect the garbage collector to keep memory usage on a fairly even keel: I see a constant increase in working set and private memory (as reported by System.Diagnostics.GetCurrentProcess() ), as well as in GC.GetTotalMemory(true) : about 300 thousand in day in this case. Inevitably, all this happens after about 12 years of modeling, after which memory usage has increased by about 1 GB.
Memory usage increases more or less linearly (much more smoothly if I press GC.Collect() at the end of each day).
I suppose that some objects are somehow not going to garbage, even if I think they will no longer need, and expected them to be cleaned in normal ebb and flow.
What can I try to determine where I accidentally managed to create such a situation?
I downloaded and launched CLRProfiler - it is going to take most of the weekend to digest the documentation, though, and there is no guarantee that it can help.
I am processing links in this question . In general, I know what situation may be causing the problem, I'm more interested in finding out if there are faster ways to identify specifics without spending precious days working through my code, bypassing links ...
NOTE. The problem is not event related and does not contain a graphical component.
source share