.Net memory profiling - .Net Memory Validator
.Net Memory Validator is a memory profiler, memory leak detection and memory analysis software tool for use by software developers, software quality assurance testers and customer support staff.
.Net Memory Validator provides many displays to provide you with more insight into the data you have collected.
Allocation location statistics
Object age statistics
Memory snapshots and snapshot comparisons
Memory allocation hotspot tree
Heap and object reference graph
Allocated memory and callstacks display
Memory usage analysis query
Virtual memory usage statistics
Diagnostic information about the application
Use .Net Memory Validator to:
- Detect memory leaks and handle leaks.
- Make memory usage snapshots and snapshot comparisons to detect objects that were not garbage collected.
- Run regression tests to find memory leaks in your overnight builds.
- Monitor billions of allocations in your application.
- Analyse memory allocation trends.
Easy to use
To use .Net Memory Validator all you need is debugging information for your application and .Net Memory Validator can get to work.
You do not need to modify your software, recompile or relink your software to use .Net Memory Validator.
- Launch your application with .Net Memory Validator.
.Net Memory Validator will launch and attach to your application in seconds.
- Run your application as normal.
- Close your application.
- Examine the memory leaks that .Net Memory Validator finds in your software.
Easy to read data displays show you all the errors in the order they occurred. The displays can be filtered to show you only the information that you want to work with.
Drill down to the data in the displays by expanding an entry in the display to display information about the memory leak: What type of object was allocated, what size, where (address, filename, line number<), thread id, allocation timestamp, lifetime and sequence id. Also displayed is a comprehensive callstack showing each class and method name, filename and line number. Each entry can be expanded to display the source code for that line.
.Net Memory Validator can be configured to collect all data or just the data you need. Powerful filters for collecting data and for displaying collected data give you maximum flexibility and control over how much CPU time is spent and how much memory is used collecting data allowing you to choose how much effort is put into a given task.
.Net Memory Validator provides an API for controlling .Net Memory Validator from your application. Start and stop data collection from within your application. Make memory snapshots exactly where you want them and create snapshot comparisons from within your code allowing you unparalleled precision when detecting objects that didn't get garbage collected that you expected to be garbage collected.
The default options of .Net Memory Validator concentrate collecting data about .Net memory allocation, Handle allocations and COM VTable creation. These options allow you to determine which objects may be leaking and which may be in memory for longer than expected.
Additional capabilities include Object Activity Monitoring which allows you to determine which objects have existed for a long time but which have not been used by the software for a long time. Such objects may be leaking objects or objects that are in memory for longer than necessary.
Combined with Object Activity Monitoring is a facility for Stale Object Detection which takes various parameters and applies them to the object activity data to determine which objects may be no longer required so that you can investigate how to dispose of those objects.
.Net Memory Validator provides powerful HTML and XML reporting capabilities, allowing you to produce overnight leak reports if you use .Net Memory Validator as part of regression testing strategy.
Unlike some of our competitors that struggle to handle even one million allocations, you can process tens of millions of allocations with ease using .Net Memory Validator.
.Net Memory Validator works with any .Net application, .Net service, ASP.Net application or WPF application that outputs debug information in PDB format.
.Net Memory Validator works with all versions of the .Net Common Language Runtime (CLR 1.0, 1.1, 2.0, 4.0) and all versions of the .Net Framework (1.0, 1.1, 2.0, 3.0, 3.5, 4.0) in 32 bit and 64 bit configurations.
All 32 bit Windows operating systems from Windows 7 to Windows 2000 are supported.
All 64 bit Windows operating systems from Windows 7 64 to Windows XP 64 are supported.
For more details, please consult the compatibility feature list
.Net Memory Validator works with applications and services, both pure .Net and mixed-mode .Net.
As well as the traditional interactive memory leak debugging role that .Net Memory Validator performs, .Net Memory Validator can be used to compare two recorded sessions to show the difference between the sessions. This allows you to determine if changes to your code have resulted in improvements (less memory leaks, less errors) or regressions (more memory leaks, more errors).
.Net Memory Validator also allows you to automate this process by launching .Net Memory Validator from the command line. A full range of command line options allow you to perform unattended runs of .Net Memory Validator, complete with HTML export and XML export, to facilitate regression testing as part of your overnight builds.