C# Tutorials - Herong's Tutorial Examples - v3.32, by Herong Yang
Memory Report from Windows Task Manager
This section provides a tutorial example on how to use Windows Task Manager to verify memory usage numbers reported by the System.Diagnostics.Process class.
To verify memory usage numbers reported by the System.Diagnostics.Process class, I wrote another tutorial example program which calls System.Threading.Thread.Sleep() to keep the program running. Then "Windows Task Manager" can be used to see memory usage numbers reported by the Windows system.
1. Compile the tutorial example program below with .NET 4 C# compiler:
// LongSleep.cs // Copyright (c) 2010 HerongYang.com. All Rights Reserved. using System; public class LongSleep { public static void Main() { System.Diagnostics.Process proc = System.Diagnostics.Process.GetCurrentProcess(); Console.WriteLine("Current process: {0}", proc.ToString()); Console.WriteLine("Private Memory: {0}", proc.PrivateMemorySize64); Console.WriteLine("Virtual Memory: {0}", proc.VirtualMemorySize64); Console.WriteLine("Working Set: {0}", proc.WorkingSet64); Console.WriteLine("Paged Memory: {0}", proc.PagedMemorySize64); Console.WriteLine("Paged System Memory: {0}", proc.PagedSystemMemorySize64); Console.WriteLine("Non-paged System Memory: {0}", proc.NonpagedSystemMemorySize64); System.Threading.Thread.Sleep(60*60*1000); } }
2. Run the tutorial example program, LongSleep.exe.
Current process: System.Diagnostics.Process (LongSleep) Private Memory: 8740864 Virtual Memory: 89157632 Working Set: 5591040 Paged Memory: 8740864 Paged System Memory: 100228 Non-paged System Memory: 3988
3. Run "Windows Task Manager" and click "View" > "Select Columns..." menu. The "Select Columns" dialog box shows up.
4. Check "Memory Usage", "Virtual Memory Size", "Paged Pool" and "Non-paged Pool" checkboxes and click OK.
5. Check "Processes" tab and look at the "LongSleep.exe" row:
Memory usage numbers reported for LongSleep.exe are:
Image Name: LongSleep.exe Mem Usage: 5,904 K VM Size: 8,676 K Paged Pool: 98 K NP Pool: 3 K
6. Compare the program output and the "Windows Task Manager" report, we can map "Windows Task Manager" values to System.Diagnostics.Process properties:
Windows Task Manager System.Diagnostics.Process Memory Usage = Working Set VM (Virtual Memory) Size = Private Memory Paged Pool = Paged System Memory NP (Non-paged) Pool = Non-paged System Memory
Table of Contents
Logical Expressions and Conditional Statements
Visual C# 2010 Express Edition
C# Compiler and Intermediate Language
Compiling C# Source Code Files
MSBuild - Microsoft Build Engine
Using "Process" Class to Show Memory Usages
Private/Virtual Memory and Working Set
Footprints of Private and Shared Memories
►Memory Report from Windows Task Manager
Memory Report from Performance Console
System.Diagnostics.FileVersionInfo Class
WPF - Windows Presentation Foundation