|
.NET Memory Profiler 3.1
A Debugging/Profiling Tool for .Net, ActiveX, ASP.Net, C/C++, Delphi, Java
.NET Memory Profiler is a tool for the .NET Common Language Runtime that allows the user to track all objects that are allocated on the GC heap. Find Memory Leaks and Optimize Memory Usage in Programs Written in C#, VB.NET or Any Other .NET Language
For more information about this product please visit the
It allows you 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.
Information is provided about: all classes, all instances of classes, the call stacks of the instance allocations, the path to a root from each instance.
The profiler also contains a dispose tracker, which provides additional data about disposable instances (i.e. instances of classes implementing the System.IDisposable interface).
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. A heap snapshot can optionally include the instance data of each instance on the heap, allowing the presentation of field values of instances. It is also 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 locating sections of the program which perform excessive allocations.
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.
Why do You Need a Memory Profiler for a Garbage Collected Runtime?
Having a garbage collected runtime removes one of the biggest sources of program errors, memory allocation errors. You no longer have to worry about freeing memory which you no longer use, and there is no risk that you use memory after it has been freed. Unfortunately, memory leaks are still a reality. A memory leak can occur if an instance is unintentionally being referenced from some other long-living instance, or from a static field. In this case the instance cannot be garbage collected. A very common unintentional reference is an event handler that is never removed.
.NET Memory Profiler can help you locate instances that are being referenced unintentionally, and it will tell you why the instance has not been garbage collected.
Additionally, the only resource the garbage collector is aware of is memory managed by the runtime. Unmanaged resources like file handles, database connections, bitmaps etc. are not handled well by the garbage collector. The runtime provides a mechanism called Finalization, which can be used to clean-up unmanaged resources. However, finalization is an expensive feature and the clean-up is not deterministic; the clean-up can happen any time after an instance is longer reachable. To solve the problem with cleaning up unmanaged resources, the Dispose pattern was introduced. The Dispose pattern allows (or rather demands) the user to dispose the instance explicitly.
The dispose tracker feature of .NET Memory Profiler helps you to make sure that all disposable instances are correctly disposed.
Finally, to optimize the performance of the garbage collector, certain assumptions have been made on the way instances are allocated. If a program allocates memory in a way that is not suitable for the garbage collector, then performance of the garbage collector will suffer, and the memory overhead will be bigger.
By using the real-time view of .NET Memory Profiler, it is possible to get an understanding on how well the allocations in the program correspond with the assumptions made by the garbage collector.
Technical Information
Programming Language - Generates code for or works with the follow languages...
|
Visual Basic.Net
|
|
C#
|
|
J#
|
|
Development Environment - Is compatible with the following environments (IDE's)...
|
Visual Studio
|
|
Visual Studio.Net
|
|
C# Builder
|
|
Operating System - Which operating systems does the product run on?
|
|
For more information and to buy this product...
Product Type:
Tool
Product Version:
3.1
Prices From:
$145
|