Dotmemory is not showing exact amount of used memory

I have a dotnet application in production where we have a memory leak/growth causing application to consume around 10 gb of memory.This is clearly visible from the task manager

But when we take the dump of the process and open it via dotmemory,it shows total used memory is 3 gb.. why there is discrepancy is confusing.

1 comment
Official comment


I have a couple clarifying questions that will probably hold the answer.
What type of memory do you look at in the task manager, Private Bytes, Working Set, WS Private Bytes or maybe something else?

For its part, memory consuming by .NET application could be split into three categories.
Managed memory, available to the application, in two words, managed heaps already allocated by .NET runtime.
Memory, which is used by .NET runtime for its needs but not available for the app.
“Native” memory, where not “managed” assets are placed. Memory mapped files, application code with all loaded assemblies etc.

For now, dotMemory shows only managed part of memory for memory dumps, but in real life, managed memory can be just a small part of the application's total memory consumption.

Please sign in to leave a comment.