Analysis

This tutorial demonstrates launching the sample application and using the Analysis view to find timing information based on specific queries.

The Analysis view presents the result data from each query as a hierarchical graph which can be expanded and collapsed at each node in the graph. This allows you to close parts of the graph that are of no interest, and open parts of the graph that appear more interesting – allowing you to easily identify the parts of the application that consume the most CPU time.

  • Click on the settings icon on the toolbar.
    Performance Validator settings icon
    The settings dialog is displayed. On the Performance tab, choose the Sampling option – this ensures Performance Validator doesn’t spend time instrumenting your application – allowing for a rapid attachment to the application to enable you to get a quick view of the callstack when your application is under load. Click OK to accept the new settings. Note that the displays for the statistics will show sample count related data (Class, Method, Class and Method, Num Children, Address, Sample Count, Sample Count %, Filename, Module). You can configure which statistics to view using the Columns… button.
  • Launch the sample application. Click on the relaunch icon on the toolbar to relaunch the most recently launched application.
    Performance Validator relaunch icon toolbar
  • Using the sample application, select the Sort menu and choose Quick Sort.
  • Using the sample application, select the Sort menu and choose Comb Sort.
  • Using the sample application, select the Sort menu and choose Heap Sort.
  • Using the sample application, select the Sort menu and choose Merge Sort.
  • Using the sample application, select the Sort menu and choose Bubble Sort.
  • Close nativeExample.exe using the File menu Exit command. The application closes. Performance Validator processes any remaining data and displays the final results.
  • Select the Analysis tab. Set the Query Type to “Filename” and set the File to “MainFrm.cpp”. Click Search. The display will update with the results of the search. This query finds any performance data relating to the MainFrm.cpp file and displays the data in a hotspot format. The results will look similar to:
    Performance Validator analysis query profiling data
  • The analysis view allows the following types of query:
    • Class. The name of the class.
    • Function. The name of the function or method.
    • File name. The name of the source file.
    • Module name. The name of the module (DLL / EXE)
    • Address. The function address.
    • Number of children. The number of children of the function.
    • Average Time. The average time.
    • Average Time %. The average time as a percentage of the execution time.
    • Total Time. The total time.
    • Total Time %. The total time as a percentage of the execution time.
    • Function Time. The function time.
    • Function Time %. The function time as a percentage of the execution time.
    • Child Function Time. The child function time.
    • Child Function Time %. The child function time as a percentage of the execution time.
    • Longest Time. The longest time the function took.
    • Longest Time %. The longest time as a percentage of the execution time.
    • Shortest Time. The shortest time the function took.
    • Shortest Time %. The shortest time as a percentage of the execution time.
    • Visit Count. Number of times the function was visited.
    • Visit Count %. Number of times the function was visited as a percentage of the total number of functions visited.
    • Most Visited Hotspots.
    • Most Time Consuming Hotspots.
    • Number of descendants.
    • Number of ascendants.
    • Distance to root. Distance of the data from the root of the hotspot graph.
    • Distance to leaf. Distance of the data to the tip of any hotspot graph branch.

    Some of the queries can be further qualified with a range specifier – this is valid for queries with numeric results.

     

  • Try performing various sample queries to get a feel for the different types of query you can perform.

Fully functional, free for 30 days