Please enable JavaScript to view this site.

Memory Validator Help

Navigation: Examples

Reducing data in the display

Scroll Prev Top Next More

 

 

Finding the signal in the noise

 

When you have a lot of data, it can be difficult to see the data that really matters - the signal within the noise.

 

This is especially the case when looking for a specific leak, rather than looking for all leaks.

 

There are a number of ways to reduce the amount of data:

 

reduce the data collected
 

reduce the data that is displayed
 

filtering the data that is displayed
 

use watermarks to display data between two points

 

 

Reducing collected data

 

Collected data can be controlled at different levels of granularity via the settings dialog.

 

Some settings pages can be used for fine tuning of how the data is collected and which hooks are enabled.

 

The collect tab allows quite coarse control over which types of hook are installed in the target program.

 

menu Settings menu instructionStep Edit Settings... instructionStep Data Collection instructionStep Collect page

 

 

Reducing displayed data

 

Data that ends up being collected can be removed from the display.

 

Most of the main tabs have a Display button to control what's shown:

 

Memory

Types

Sizes

Locations

Generations

Ages

Hotspots

Analysis

 

 

Filtered Data

 

Filters operate by matching source file and line number, callstack and datatype to keep or remove data.

 

A combination of permanent and temporary filters can be used, as well as global, session and local filters.

 

 

Watermarks

 

Watermarks let you not only add markers where certain events happened, but also let you display only the data for allocation events that happened between those watermarks.

 

The example usage of watermarks demonstrates this at the end

 

 

Example of reducing data in the display

 

Here's a simple example of reducing displayed data via the display settings dialog:

 

mvMemVal

 

launch nativeExample.exe instructionStep wait until attaching is complete

 

 

mvExample1  

 

menu File menu instructionStep Exit

 

 

mvMemVal

 

wait for data transfer to complete

 

Memory tab instructionStep Refresh instructionStep shows the usual leaks and also memory errors

 

Roughly half the data is shown here:

 

example-reducing-data-more-sm

 

Memory tab instructionStep Display... instructionStep select Leaks and errors in the first combo box instructionStep uncheck CRT Memory instructionStep OK

 

Memory tab instructionStep Refresh instructionStep shows a much reduced set of data  

 

All the data displayed is shown here - a much reduced set of information!

 

example-reducing-data-less

 

note Note the header helpfully shows the number of items hidden by the display settings, 62 compared with 2 before

 

example-reducing-data-header

 

The same approach could be done with other data, for example if you have allocations on other heaps:

 

Memory tab instructionStep Display... instructionStep uncheck Heap Memory instructionStep uncheck Global Alloc Memory instructionStep uncheck Local Alloc Memory instructionStep OK instructionStep Refresh

 

Or to remove handle allocations from the display:

 

Memory tab instructionStep Display... instructionStep uncheck Handles instructionStep OK instructionStep Refresh

 

 

note When you enable or disable the Memory Errors check box in the Memory tag display settings dialog, you may also need to make a change to the first combo box to make the display change. This is because memory error traces are not considered memory leaks.