Find out Information about the Native Memory of a .NET Process
To find out how the native memory is used by a .NET process, the following steps should be performed:
Edit the session settings to enable the “very low” profiling level. For more information, see Session Settings.
Start profiling the application, service, or ASP.NET using the procedure described under the Profile a .NET Process section.
Note
In the professional and enterprise editions, it is also possible to use the “attach to” function to find out native memory information about the process. Since attaching the profiler to a process does not affect the process at all, more accurate memory values can be presented. However, even though the presented information is more accurate, it is not as detailed.
If possible, start another similar process (for an application, simply run the .exe once more). Starting two processes allows memory to be identified as shared instead of only potentially shared.
Work with the process until you reach a state where you want information about native memory.
Collect a generation #0 heap snapshot by using the Collect Gen #0 Heap Snapshot command.
On the Native memory page, select Show memory of snapshot and select the profiled process. The data presented under the Physical memory view and the Committed memory view, should give you a good understanding how memory is used by the process. For more information about the memory views, see Native Memory Page.
Note
If the Physical memory view is to present the working set of the process, then it is vital that there is enough physical memory present on the computer to avoid memory being flushed to the paging file.