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
Use the Memory Analyser
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
Setup Native Stack Walks
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
AppDomains and Threads Selector
Commands
Status Bar
Field Sets
Info Panel
Context Menus
Copying Data to the Clipboard
Fast Column Filter
Navigating Types, Resources, and Instances
Column Layout and Customization
Profiler Projects
Comparing Project Snapshots
Adding and Removing Sessions
Preferences
Symbol File Locations
Session Settings
General Settings Page
Launch Settings Page
Snapshots Settings Page
Session File Settings Page
AppDomains and Threads Settings Page
Real-time Settings Page
Memory Leak Settings Page
Instance Data Collection Settings Page
Call Stacks Settings Page
Instance Data Collection Form
Types/Resources Page
Type/Resource Details Page
Instances
Allocation Stacks
Shortest root paths
Instances, Allocation Stack, and Root Path Synchronization
Instance Details Page
Referenced by
References/Wraps
Field values
Wrapped by
Related resource instances
Root path
Instance creation
Call Stacks/Methods Page
Call Stacks View
Methods 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
Automatic Memory Analysis
Issue Presentation
Ignoring Analysis Issues
Modifying Ignored Issues
Analysis Issues List
Disposable Types Classification and Undisposed Instances
Ignoring Framework Issues
Held and Reachable Instances
Dispose Tracker
Disposed Instances
Undisposed instances
Heap Utilization Tracker
Unreachable instances
Unmanaged Resources Tracker
Resource Tracker Limitations
Associated Memory
Creation Context
AppDomains and Threads Tracker
Call Stacks Reduction
Limiting Call Stack Depth
Excluding Call Stack Functions
Call Stack Reducer
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
Information about Delayed Instance Cleanup
Support for .NET Framework 2.0 and Later
Generic Classes
Generic Methods
Known Issues
Glossary of Terms