Please enable JavaScript to view this site.

Performance Validator Help

Navigation: Overview

Introducing C++ Performance Validator

Scroll Prev Top Next More

 

What is Performance Validator?

 

C++ Performance Validator is an automatic performance analyzer for Windows.

 

It works with versions of Windows from NT® 4.0 and above, running on the Intel i386 (and compatible) family of processors.

 

For the purposes of this documentation, we'll call C++ Performance Validator just 'Performance Validator'.

 

 
What does Performance Validator do?

 

Performance Validator can:

 

automatically calculate performance data for your application as it executes

detect performance hotspots

 

The results are displayed as a variety of comprehensive but easily explorable tabulated and hierarchical formats.

 

Source code editing is provided with colour coded lines so that you can see at a glance which functions consume more time than others.

 

The performance overhead is very low and there is no need to recompile or relink the target program.

 

The only requirement is PDB files with debug information and/or MAP files with line number information.

 

Performance Validator can also be used for unit testing and as part of a regression testing strategy by Quality Assurance teams.

 

 

The main sections of Performance Validator

 

The user interface is split into tabbed report sections (plus Tutorials), each presenting or analysing performance in the target program at different levels of granularity.

 

Interactive image

main-tabs

 

Here's a summary of those sections, each of which is covered in full in The User Interface section.

 

Callstack

Shows a callstack of the selected thread as the program executes. This view is useful for an 'at a glance' summary of where the program is currently executing.

 

Statistics

Collates statistics per function, identifying those that are taking the most time, or which are visited more than others. The columns of data can be sorted, removed or added to show as little or as much as needed.

 

Relations

Identifies the top N time-consuming functions or most called functions. Shows the relationships between each function, the functions which it calls, and the functions which call it.

 

Call Tree

Displays an explorable call tree of the performance hotspots in the application.

 

Call Graph

For very simple applications the Call Tree and Call Graph might be identical. For more complex applications the Call Graph will be smaller as duplicate function calls will link to the first instance in the tree.

 

Analysis

Enables queries on the collected data, displaying results similar to the call tree. Useful for finding the top most visited functions, most time-consuming functions, functions with a particular name or class, etc.

 

Line Times

Displays execution times per line of the application. The hierarchical data is organised by file, function and line.
 

Diagnostic

Logs diagnostic information collected by the stub, including functions that could not be hooked.

 

 

Where functions are shown in tables or trees, selecting a function shows the relevant source code, and double clicking displays the function on the Relations tab.