User Manual

Introduction

.NET Memory Profiler is a tool for the .NET Common Language Runtime that allows the user to retrieve information about all instance allocations performed on the garbage collected heap (GC heap) and all instances that reside on the GC heap. The retrieved information is presented in real time, both numerically and graphically.

The real-time information presented gives a good overview of the activity and status of the GC heap, but by collecting snapshots of the heap, very detailed information can be presented. Information is provided about: all managed types, all instances of types, the call stacks of the instance allocations, and the path to a root from each instance. A heap snapshot can optionally include the instance data of each instance on the heap, allowing presentation of the field values. It is possible to compare two snapshots, which is a very convenient and efficient way of detecting memory leaks in a program. The memory profiler also helps to locate sections of the program that perform excessive allocations.

The profiler contains a dispose tracker, which provides additional data about disposable instances (i.e. instances of classes implementing IDisposable), and a heap utilization tracker, which gives information about how the heap memory is utilized.

In addition to presenting information about the GC heap, the profiler also presents information about the native memory of the profiled process or any other process running on the computer.

An API is available that can be used to programmatically check for memory leaks. Combined with the possibility to run the profiler without a user interface, this API can be used to perform fully automated memory testing.

The professional edition of .NET Memory Profiler includes additional features such as the unmanaged resources tracker, the “attach to” function, the possibility to import memory dump files, and profiler projects.

The resource tracker allows the profiler to present detailed information about unmanaged resources, such as heap memory, bitmaps and windows.

The “attach to” function and the possibility to import memory dump files make it much easier to investigate memory issues on production systems where it might not be possible to use the profiler directly.

A .NET Memory Profiler project allows all settings used to profile a process to be saved, making it easier to use different settings for different applications. It also keeps track of session files related to the project, allowing the user to compare snapshots between different sessions. This is particularly useful when doing automated testing and the user wants to check whether the memory usage has changed between different builds of a program.

 

 

.NET Memory Profiler User Manual

© Copyright 2002-2008. SciTech Software AB.

For information about .NET Memory Profiler, see the product site at http://memprofiler.com

.NET Memory Profiler is developed by SciTech Software AB