I'm new to memory profiling and ANTS, and I'd like some feedback regarding my interpretation of the profiling results to see if I'm on the right track.
To profile an ASP.NET application, I reloaded a user home page 33 times, each time taking a snapshot. Below are screen shots of the ANTS Analysis and Overview.
On the Overview
, I notice that "Private Bytes" is continuing to grow and is a large number (>200MB used), whereas the heaps generally look okay. The LOH does trend upward, but the numbers are pretty small (< 1MB used).
On the Analysis
page, the amount of unmanaged memory stands out, but none of the other numbers are too alarming to me. Also, the fragmentation warning is present when the application starts up, right off the bat.
So, does this point to potential leak in unmanaged memory?
Seems that the large amount of unmanaged memory is contributing to the high Private Bytes count.
Some background: This particular ASP.NET app has a small user base (around 40 people, not using it on even a daily basis yet). It's hosted at one of the popular ASP.NET hosts that will recycle the AppDomain if total memory consumption hits 200MB. Unfortunately, that is what's happening to my application, on a regular basis. For a small application like this, I wouldn't expect it to consume anywhere 200MB!
However, I'm using Fluent NHibernate and a third-party web control suite in this application, and from what I can tell using ANTS, these two do eat up a good chunk of memory and are probably using unmanaged code. It might be that I just need to run this app in an environment that allows >200MB.
Any input would be greatly appreciated! Thanks.