Large amounts of native memory

Use this forum for questions on how to use .NET Memory Profiler and how to analyse memory usage.
Post Reply
suvetar
Posts: 4
Joined: Thu Aug 10, 2006 4:54 pm

Large amounts of native memory

Post by suvetar » Thu Aug 10, 2006 4:59 pm

Hi all,

I'm trying to find the root of why my site isn't releasing memory, I'm getting a very large amount of undisposed System.ComponentModel.Design.ServiceContainer's which, I believe, is to do with the Dynamic control loading I'm doing.

However, in the native memory tab, I click on Physical -> Private -> OtherData and I've a very large amount of memory marked as <other>, and it accounts for the majority of RAM usage for the app domain, from what I can tell.

Can anyone enlighten me as to what this memory is or if theres a way to see it somehow ?

Thanks!

Andreas Suurkuusk
Posts: 1029
Joined: Wed Mar 02, 2005 7:53 pm

Post by Andreas Suurkuusk » Mon Aug 14, 2006 9:34 am

Having undisposed might indicate inefficient memory utilization, but if the classes have proper finalizers, or don't wrap unmanaged resources, the undisposed instances don’t usually indicate a memory leak.

The "Other data -> <Other>" node represents memory that the profiler has failed to identify. This can be memory used by unmanaged resources or internal memory used by the runtime. The current version of the profiler does not provide any additional information about this memory, but if you have purchased a license of .NET Memory Profiler 2.x, you can download the preview of .NET Memory Profiler 3.0 (from http://memprofiler.com/preview). This preview contains an unmanaged resources tracker that might help you identify the "other data" memory.

If you unload classes from your application (e.g. by working with dynamic AppDomains), it is possible that some memory associated with the classes doesn't get released when running under the profiler. E.g. there is no possibility for the profiler to release memory allocated by the Dispose tracker, and this memory will show up as <Other>. The attach to feature of .NET Memory Profiler 3.0 can be used to get more accurate native memory information, since attaching to a process does not affect the memory usage of the process at all.
Best regards,

Andreas Suurkuusk
SciTech Software AB

suvetar
Posts: 4
Joined: Thu Aug 10, 2006 4:54 pm

Post by suvetar » Mon Aug 14, 2006 9:52 am

Thanks Andreas, I'll try that and see what I can see :)

Post Reply

Who is online

Users browsing this forum: No registered users and 15 guests