Understanding Process Memory Usage


To understand how much memory a process is using, we can keep an eye on its various memory counters.

Private Memory: This is the amount of RAM that has been allocated to the process privately. In general, “Private memory” does not include any memory used by the process’s shared DLL files.

Virtual Memory: represents the process’s total virtual address space.

Working Set: This is the portion of “Virtual memory” that is currently resident in RAM and can be accessed without causing a page fault.

Private working set: The amount of memory used by a process that cannot be shared with other processes, as opposed to the working set, which includes memory shared by other processes.

Counter Description Including shared processes? (DLLs in memory, .NET runtime) Including memory paged to disk?
Private bytes Includes memory allocated (even if not in use) No Yes
Working set Only includes memory in use Yes No
Virtual bytes Only includes memory in use Yes Yes
Private working set Only includes memory in use No No

ProcessExplorer is an excellent tool for gaining detailed insights into various aspects of a process.