Unidentified unmanaged heaps

Use this forum for questions on how to use .NET Memory Profiler and how to analyse memory usage.
Post Reply
Qythyx
Posts: 5
Joined: Wed Aug 19, 2009 2:59 am

Unidentified unmanaged heaps

Post by Qythyx » Wed Aug 19, 2009 3:02 am

I'm trying to figure out why my app is using as much memory as it is and noticed that the "Unidentified unmanaged heaps" has about 20MB of data in it. Is there any way to dig into this section more to help determine what's using that memory?

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

Post by Andreas Suurkuusk » Wed Aug 19, 2009 12:44 pm

By using the unmanaged resources tracker, the profiler should be able to identify the unmanaged heap memory. Have you tried to enable the resource tracker?

However, if you are profiling a 64-bit process, this will unfortunately not work using .NET Memory Profiler 3.1. In version 3.5 the resource tracker will work for 64-bit process as well.
Best regards,

Andreas Suurkuusk
SciTech Software AB

Qythyx
Posts: 5
Joined: Wed Aug 19, 2009 2:59 am

Post by Qythyx » Thu Aug 20, 2009 1:19 am

Thanks for the info. I did try the unmanaged resources tracked bofore, but it just showed a block 20MB of Unidentified unmanaged heaps -> Data.

I just trying the 3.5 preview and got a little more info. Now the Unidentified unmanaged heaps -> Data is only 1MB, and a new "Profiler induced data" item is about 20MB. What is this new item? Is it there only because I'm running the memory profiler and therefore won't exist in a real situation?

Thanks.

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

Post by Andreas Suurkuusk » Thu Aug 20, 2009 2:46 pm

"Profiler induced data" referrs to memory that is indirectly allocated by the profiler, i.e. when the runtime makes allocations during a call from the profiler. The profiler will, for instance, load metadata information, which will require the runtime to make allocations. However, if the profiler wouldn't have caused the allocations, there's still a possibility that this memory would have been allocated anyway. So "profiler induced" memory is memory used by the profiler, but whether it will be used when not profiling can unfortunately not be determined (even though I think you can usually assume that this memory will not be used when not profiling).
Best regards,

Andreas Suurkuusk
SciTech Software AB

Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest