Please enable JavaScript to view this site.

Memory Validator Help

This topic describes things that will influence memory consumption in the target application and in Memory Validator's user interface.

 

 

Target Application

 

The following things influence the memory consumption of the target application

 

The behaviour of the target application.

The types of native data that are collected. Collect fewer types of data to use less memory (and have faster performance).

The types of .Net data that are collected. Collect fewer types of data to use less memory (and have faster performance).

Collect less data by only collecting allocations inside a specific memory size range (faster performance, shorter queues of data).

The size of the PDB files loaded by DbgHelp to obtain symbol data.

When symbol servers are enabled, PDB files for Windows dlls will be downloaded and loaded when symbols are required for a particular Windows DLL.
Disabling Microsoft's symbol servers can help reduce memory consumption as you may not need such symbolic detail for Microsoft's symbols.

When advanced instrumentation options are enabled, this uses more memory, both for workspace and for the hooks that are inserted into the application.

Asynchronous data queues of data waiting to be sent to the user interface. By choosing Data Transfer settings of Disk or High Volume, these queues can be reduced.

Software Verify code may use memory mapped files for data comms with the user interface.

Software Verify DLLs loaded into the target application.

Software Verify multiple private heap workspace to do the work we need to do without using your CRT (or Delphi, etc) heap.

Software Verify threads to do asynchronous work. Each thread reserves 1MB of stack space.

 

 

Memory Validator User Interface

 

The following things influence the memory consumption of Memory Validator's user interface

 

The volume of allocation, reallocation and deallocation data generated as memory and handles are allocated, reallocated and deallocated.

The types of native data that are collected. Collect fewer types of data to use less memory (and have faster performance).

The types of .Net data that are collected. Collect fewer types of data to use less memory (and have faster performance).

Collect less data by only collecting allocations inside a specific memory size range.

If Allocation History purging is disabled, memory use will grow for every data itema and stack trace sent from the target application.
Eventually, storing this data may exhaust memory available for use by Memory Validator.

Allocation History lists are by default 1000 items long. Making these long will allow more data to be stored for historical queries, but at the expense of slower query times (Analysis tab) and greater memory usage.
Making Allocation History lists shorter or none-existent (length 0) will make these lists consume less memory, and provide faster query times (Analysis tab).

Memory Coverage. Data is used to monitor and calculate memory coverage for each source file that contains an allocation or deallocation.

Memory Timeline. The more data you collect, the more memory is used.

.Net Object Activity Data and .Net Stale Object Detection.

.Net heap dumps.

.Net snapshots.

 

 

Monitoring Memory Consumption

 

Target process

 

If you wish to monitor the memory consumption of the target process you can:

 

use the Summary view Virtual tile to get a broad overview of the memory that the target application is using

use the Virtual view to get a broad overview of the memory that the target application is using

use VM Validator to get a broad overview of the memory that the target application is using

 

Memory Validator

 

If you wish to monitor the memory consumption of Memory Validator, you can use VM Validator to get a broad overview of the memory that Memory Validator is using.