Please enable JavaScript to view this site.

Memory Validator Help

The Hotspots tab displays areas of high memory and handle allocation activity.


interactiveRead on, or click a part of the image below to jump straight to the help for that area.






Memory hotspots are locations in the target program that are responsible for the highest allocation of memory or handles.


This view displays those hotspots that have a contribution to the total allocated memory, which is greater than the threshold setting below.


The tab is split into two resizeable halves, with the left showing the hotspot callstacks and the right showing the source code for any selected row on the left.



Hotspot display styles


At the top of the Hotspot tab is a combo box containing a list of many display styles, allowing you to choose what data to examine.


Native Memory instructionStep hotspot data for native memory allocations


Native Handles instructionStep hotspot data native handle allocation hotspots


.Net Memory instructionStep hotspot data for .Net memory allocations


.Net Handles instructionStep hotspot data .Net handle allocation hotspots


All Memory instructionStep hotspot data for all native and .Net memory allocation hotspots


All Handles instructionStep hotspot data for all native and .Net handle allocation hotspots


All Native instructionStep hotspot data for all native memory and handle allocation hotspots


All .Net instructionStep hotspot data for all .Net memory and handle allocation hotspots


All instructionStep hotspot data for all native and .Net memory and handle allocation hotspots


The left side of the tab shows three columns of data:


Size instructionStep total size of memory or handles allocated within the hotspot area


Count instructionStep how many allocations were made within the hotspot


Hotspots instructionStep a hierarchical view of the function calls leading to each hotspot location



Hotspot function call hierarchy


To reduce the amount of repeated information, allocations sharing a partial callstack are merged together in the hotspot function call hierarchy.


As you expand each node in the tree, it shows the function, file and line number, although you can show more via the display settings.




Intermediate nodes indicate the function's percentage contribution to the total allocation, along with the size and count information.




These intermediate nodes are only shown at and after the branches, i.e. where a function splits the allocations between different child callstacks.




Source code


A short section of the source code around the highlighted allocation line is shown at the end of the callstack.




You can browse the whole source file (if available) on the right when you click on any row in the hierarchy.


If you want to edit rather than browse, double clicking a row will open the relevant source code file for editing, using the editor of your choice.



Hotspot tab options


Similar to the other tab pages, a set of options are found on the left, that control the data displayed in both the memory and the handles hotspot views.


The choice of lifetime or live data, and the setting of the hotspot threshold are specific to the hotpot tab.



Lifetime data or live data


You can choose to display all recorded allocations or just the live ones.




All allocations instructionStep shows cumulative data for all allocations, reallocations and deallocations and associated hotspots

Current allocations instructionStep shows only the live data that has not been freed, and the current hotspots


 If the program has ended, this will be the leaked memory, enabling you to see leak hotspots.


Be sure to click Refresh after changing this option and others.



Reducing data with watermarks and tag trackers


As with other tabs, you can restrict displayed data to that between two watermarks, or allocations associated with particular tags.




The Memory tab topic describes use of the Watermark and Tracker options in detail.



Contribution threshold


The threshold of whether a location is regarded as a 'hotspot' is determined by the percentage contribution to the overall consumption of memory or handles.




All instructionStep shows the hotspot hierarchies incorporating all allocations, barring any filtering via watermarks, tag trackers etc

X% instructionStep display only hotspots that contribute at least that much to the overall resources

Children instructionStep controls whether hotspots use sub allocations in the hierarchies to meet the hotspot percentage criteria




The data on the display can't be sorted, but you can change the ordering direction




Ascending        instructionStep swaps the ascending or descending ordering of the hotspots. Don't forget to Refresh!  



Local filters and settings


Display... instructionStep shows the Hotspot Tab Display Settings dialog to set the types of data and messages displayed in the hotspot view.



Updating the display


Refresh instructionStep updates the display - as does the refresh button on the Tools menu and toolbar


Clear instructionStep removes all data from the display


 This reduces Memory Validator's own memory usage. If you have lots of data but low memory on your computer, clearing one view before using another view may help.


Collapse All instructionStep completely collapses all hotspot data items, including any source code views that were open


Expand All instructionStep expands all data items down to but not including the source code snapshots




Hotspot view popup menuright_mouse_button


The following popup menu is available over the data area





Edit Source Code... instructionStep opens the default or preferred editor to edit the source code  

Expand next hotspot instructionStep expands the hierarchy only as far as the next hotspot, but not the source code snippet

Collapse entry instructionStep collapses the selected hierarchy of hotspots

Expand entry instructionStep expands all hotspots in the selected hierarchy