Memory Performance Information

Memory performance information is available from the memory manager through the system performance counters and through functions such as GetPerformanceInfo, GetProcessMemoryInfo, and GlobalMemoryStatusEx. Applications such as the Windows Task Manager, the Reliability and Performance Monitor, and the Process Explorer tool use performance counters to display memory information for the system and for individual processes.

This topic associates performance counters with the data returned by memory performance functions and the Windows Task Manager:

  • System Memory Performance Information
  • Process Memory Performance Information
  • Related topics

System Memory Performance Information

The following table associates memory object performance counters with the data returned by the memory performance functions in the MEMORYSTATUSEX, PERFORMANCE_INFORMATION, and PROCESS_MEMORY_COUNTERS_EX structures, and with the corresponding information displayed by Task Manager.

Memory object counter (unless otherwise noted) Structure Task Manager Performance tab for Windows Server 2008 and Windows Vista Task Manager Performance tab for Windows Server 2003 and Windows XP
Available KB MEMORYSTATUSEX.ullAvailPhys and PERFORMANCE_INFORMATION.PhysicalAvailable Subtract usage value shown in Memory graph from Physical Memory (MB): Total Physical Memory: Available
None MEMORYSTATUSEX.ullTotalPhys and PERFORMANCE_INFORMATION.PhysicalTotal Physical Memory (MB): Total Physical Memory: Total
Committed Bytes PERFORMANCE_INFORMATION.CommitTotal System: Page File first value (in MB) Commit Charge: Total
Commit Limit MEMORYSTATUSEX.ullTotalPageFile and PERFORMANCE_INFORMATION.CommitLimit System: Page File second value (in MB) Commit Charge: Limit
Free & Zero Page List Bytes

Windows Server 2003 and Windows XP:  This performance counter is not supported.

None Physical Memory (MB): Free Not applicable
None PERFORMANCE_INFORMATION.CommitPeak None Commit Charge: Peak
None PERFORMANCE_INFORMATION.HandleCount System: Handles Totals: Handles
None MEMORYSTATUSEX.ullAvailPageFile None None
Pool Nonpaged Bytes PERFORMANCE_INFORMATION.KernelNonpaged Kernel Memory: Nonpaged Kernel Memory: Nonpaged
Pool Paged Bytes PERFORMANCE_INFORMATION.KernelPaged Kernel Memory: Paged Kernel Memory: Paged
Pool Paged Bytes + Pool Nonpaged Bytes PERFORMANCE_INFORMATION.KernelTotal Kernel Memory: Total Kernel Memory: Total
Processes (Objects object) PERFORMANCE_INFORMATION.ProcessCount System: Processes Totals: Processes
Thread Count (Process(_Total) object) PERFORMANCE_INFORMATION.ThreadCount System: Threads Totals: Threads
Cache Bytes + Sharable pages on the standby and modified lists PERFORMANCE_INFORMATION.SystemCache None System Cache
Cache Bytes + Modified Page List Bytes + Standby Cache Reserve Bytes + Standby Cache Normal Priority Bytes + Standby Cache Code Bytes

Windows Server 2003 and Windows XP:  Except for Cache Bytes, these performance counters are not supported.

None Physical Memory (MB): Cached Not applicable

 

Process Memory Performance Information

The following table associates process object performance counters with the data returned by the memory performance functions in the MEMORYSTATUSEX, PERFORMANCE_INFORMATION, and PROCESS_MEMORY_COUNTERS_EX structures, and with the corresponding information displayed by Task Manager.

Process object counter Structure Task Manager Processes tab for Windows Server 2008 and Windows Vista Task Manager Processes tab for Windows Server 2003 and Windows XP
Handle Count None Handles Handles
Page File Bytes PROCESS_MEMORY_COUNTERS_EX.PagefileUsage Commit Size for all processes except the System process. For the System process, Page File Bytes is always 0. VM Size for all processes except the System process. For the System process, Page File Bytes is always 0.
Page File Bytes Peak PROCESS_MEMORY_COUNTERS_EX.PeakPagefileUsage None None
Pool Nonpaged Bytes PROCESS_MEMORY_COUNTERS_EX.QuotaNonPagedPoolUsage NP Pool NP Pool
Pool Paged Bytes PROCESS_MEMORY_COUNTERS_EX.QuotaPagedPoolUsage Paged Pool Paged Pool
Private Bytes PROCESS_MEMORY_COUNTERS_EX.PrivateUsage Commit Size VM Size
Thread Count (Process(<image name>) for the specified image) None Threads Threads
Virtual Bytes MEMORYSTATUSEX.ullTotalVirtualMEMORYSTATUSEX.ullAvailVirtual None None
Virtual Bytes Peak None None None
Working Set PROCESS_MEMORY_COUNTERS_EX.WorkingSetSize Working Set (Memory) Mem Usage
Working Set Peak PROCESS_MEMORY_COUNTERS_EX.PeakWorkingSetSize Peak Working Set (Memory) Peak Mem Usage
Working Set - Private

Windows Server 2003 and Windows XP:  This performance counter is not supported.

None Private Working Set Not applicable
None PROCESS_MEMORY_COUNTERS_EX.QuotaPeakNonPagedPoolUsage None None
None PROCESS_MEMORY_COUNTERS_EX.QuotaPeakPagedPoolUsage None None
None MEMORYSTATUSEX.ullAvailPageFile None None
None MEMORYSTATUSEX.ullTotalPageFile None None

 

Memory Object

Objects Object

Process Object

Process Explorer tool