I'm currently trying to do memory analysis on a C# project I am working on to determine if there any leaks since this application needs to have as close to 100% up-time as possible. I started using the Ants Memory Profiler version 7.4, and noticed that my unmanaged memory was growing continuously over time even though my managed memory was not.
After more experimenting, I tried doing a similar analysis on a program that does nothing but block on a Console.ReadLine()
instruction. I ran the analysis and noticed the same thing happening. My unmanaged heap was slowly growing. In fact, it actually only seemed to grow as the garbage collector was being called (by the snapshot functionality). Now why would calling garbage collect repeatedly lead to an un-endable increase in unmanaged memory? Was it something to do with ANTS?
I would like to use some other tool, preferably something like windbg or SOS to determine what it sees my unmanaged memory usage is. It is not important right now for me to know what is in it -- although this may help for debugging in the long run. I'm simply trying to determine the unmanaged memory usage of an application currently running. I would like to see if this is really an issue with ants or a misunderstanding by me of how the environment works. Having some sort of .net, visual studio, or windows tool to give me accurate information about my process would help me with this.