User Manual
Introduction
How to...
Profile a .NET Process
Start Profiling an Application
Start Profiling ASP.NET
Start Profiling a WPF Browser Application
Start Profiling a Windows Service
Find Memory Leaks
View Real-time Heap Utilization
Work with a Previously Saved Session
Find Out Information about the Native Memory of a .NET Process
Perform Unit Testing together with the Profiler
Increase the Performance of the Profiler
Attach to a Process
Import Memory Dump Files
Create or Load a Profiler Project
Start Profiling using a Profiler Project
Compare Snapshots using the Profiler Projects Explorer
Starting .NET Memory Profiler
Interactive Mode
Non-Interactive Mode
Command Line Arguments
Available Command Line Options
Response Files
Exit Codes
The .NET Memory Profiler Window
Snapshot Dropdown Lists
Commands
Status Bar
Field Sets
Info Panel
Context Menus
Copying Data to the Clipboard
Fast Column Filter
Navigating Types, Resources, and Instances
Profiler Projects
Comparing Project Snapshots
Adding and Removing Sessions
Preferences
Session Settings
General Settings Page
Launch Settings Page
Snapshots Settings Page
Session File Settings Page
Real-time Settings Page
Memory Leak Settings Page
Instance Data Collection Settings Page
Unmanaged Resources Settings Page
Debug Symbols Settings Page
Instance Data Collection Form
Types/Resources Page
Type/Resource Details Page
Instances
Allocation Stacks
Shortest root paths
Instance Details Page
Referenced by
References/Wraps
Field values
Wrapped by
Related resource instances
Root path
Instance creation
Call Stacks/Methods Page
Call Stack View
Method View
Details (allocated instances)
Native Memory Page
Memory View
Managed heaps
JIT
Code
Thread stacks
Identified resources
Unidentified unmanaged heaps
Profiler induced data
Other Data
Data
System
Private, Shared, and Potentially Shared Memory
Real-Time Page
Graph
A Comment on the Appearance of Total and Live Plots
Statistics
Real-time Types/Resources
Working with the Graph
Session Time Selector
Reducing Data
Dispose Tracker
Disposed Instances
Undisposed instances
Heap Utilization Tracker
Unreachable instances
Unmanaged Resources Tracker
Resource Tracker Limitations
Associated Memory
Creation Context
GC Handle Identification
Visual Studio Integration
Start Profiling a Project
Open a Previously Saved Session
Access Profiler Settings
Commands in Visual Studio
.NET Memory Profiler API
Using Assertions to Detect Memory Leaks
Using Wildcard to Perform Namespace Assertions
Memory Assertions Session
Performing Assertions using the AssertionsDefinition class
Specifying Types using TypeSets
Declarative Memory Assertions
Memory Assertions on Generic Types
Using Memory Assertions with Unit Testing
How to Call the .NET Memory Profiler API Methods
Adding Comments to the Real-time Graph
Handling Failed Memory Assertions
Viewing Failed Memory Assertions
Appendix
Details on the Garbage Collector
Information about Delayed Instance Cleanup
Support for .NET Framework 2.0
Generic Classes
Generic Methods
Known Issues
Glossary of Terms