I've done many searches before writing here but I can't find a clear way (and it seems strange to me) to view what's inside a process managed memory.
I started looking at memory structure with VMMAP, it says that I've 1GB working set with 400MB private/committed managed heap and 600MB image that is pretty similar to the amount of memory used reported by Task Manager. Saving a dump with procdump and looking
at this with DebugDiag using DotNetMemoryAnalisys I can see only 220MB of GC Heap Size and 260MB of committed memory, where are the missing 140MB? DebugDiag says that 100MB are user by Strings and char[] but without info about where they are used.
Finally collecting data with PerfView and looking at results I can't match any number with the previous one, the most recurring objects are FW internals, not connected directly with my assemblies.
I'm pretty confused. What is the correct way to answer the question "What's allocated inside the memory of this process and what assembly/module allocate it?"
Looking better at VMMAP I've found that the 400MB managed heap is divided in 260MB of GC and a sequence of "Domain 2", "Domain 2 High Frequency", "Domain 2 Low Frequency" so the numbers between VMMAP and DebugDiag matches
Member
2 Points
20 Posts
How to analyze managed memory
Dec 06, 2013 10:22 AM|Gibson|LINK
Hi,
I've done many searches before writing here but I can't find a clear way (and it seems strange to me) to view what's inside a process managed memory.
I started looking at memory structure with VMMAP, it says that I've 1GB working set with 400MB private/committed managed heap and 600MB image that is pretty similar to the amount of memory used reported by Task Manager. Saving a dump with procdump and looking at this with DebugDiag using DotNetMemoryAnalisys I can see only 220MB of GC Heap Size and 260MB of committed memory, where are the missing 140MB? DebugDiag says that 100MB are user by Strings and char[] but without info about where they are used.
Finally collecting data with PerfView and looking at results I can't match any number with the previous one, the most recurring objects are FW internals, not connected directly with my assemblies.
I'm pretty confused. What is the correct way to answer the question "What's allocated inside the memory of this process and what assembly/module allocate it?"
Member
2 Points
20 Posts
Re: How to analyze managed memory
Dec 06, 2013 10:49 AM|Gibson|LINK
Looking better at VMMAP I've found that the 400MB managed heap is divided in 260MB of GC and a sequence of "Domain 2", "Domain 2 High Frequency", "Domain 2 Low Frequency" so the numbers between VMMAP and DebugDiag matches
Member
680 Points
279 Posts
Re: How to analyze managed memory
Dec 08, 2013 10:23 PM|Tear09|LINK
Hi,
Seems you solved your issue.
I would be grateful that if you can provide any resources about analyze manage memory.
Thanks