Performance Profiling Results

The Performance Profiling report provides function profiling data for your program and its components so that you can see exactly where your program spends most of its time. When the configuration settings are set and the test application is run, you can see the Performance Profiling report.

The default Performance report is in HTML format. It is generated from a template named wcetreport.template provided as text file that you can modify to customize the report. It uses four online JavaScript libraries:
  • Bootstrap,
  • JQuery,
  • Font Awesome,
  • VisJS.
These libraries are not provided. You need an internet connectivity when you open the report. If not, download the libraries (.css and .js files), copy them in the same folder than your report, and modify the template file as follows:
Replace the following lines:
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.5.0/css/all.css" integrity="sha384-B4dIYHKNBt8Bc12p+WXckhzcICo0wtJAoU8YZTY5qE0Id1GSseTk6S+L3BlXeVIU" crossorigin="anonymous">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/vis/4.21.0/vis.min.css">
…
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vis/4.21.0/vis.js"></script>
With the following ones:
<link rel="stylesheet" href="./bootstrap.min.css>
<link rel="stylesheet" href="./all.css">
<link rel="stylesheet" href="./vis.min.css">
…
<script src="./jquery-3.3.1.slim.min.js"></script>
<script src="./popper.min.js"></script>
<script src="./bootstrap.min.js"></script>
<script src="./vis.js"></script

The Performance profiling report is made of Summary, Functions and the Call Graph parts.

SUMMARY

Summary table
The Summary table displays the total number of functions and the number of functions that have never been executed and for which we have no data. If the instrumentation has been done with the WCET option (Worst Case Execution Time), then the table contains the list of the entry points with an evaluation of the WCET for each of them. This information can be empty (and the cell is red) if the WCET could not be computed. This can occur when one of the called functions in the call graph starting with this entry point has never been executed.
The WCET is given for each entry point if you have entered the list of entry point of your application in the Settings. For more details, see Performance profiling settings.

Function time graphs
The Summary is followed by two graphs that provide a high level view of the largest time consumers detected by Performance Profiling in your application.
  • % Function Time: It gives the five top functions with the greatest percentage of Function Time.
  • Average Function Time: It gives the five top functions with the greatest Average Function Time.

FUNCTIONS

The Functions section of the report displays a table with the instrumented functions, procedures or methods (collectively referred to as functions) found in the application with the following information:
  • Functions: Name of the function (in red if the function has never been executed).

    If you have selected the WCET option, the chevron in front of the name allows the user to see how many times this function calls other functions. This can help to understand how the WCET is calculated.

  • EP: Indicate if this function is an entry point or not. You can provide the list of the entry points, or, if not, they are deduced from the call graph (all the functions that are never called).
  • # Calls: Number of times the function is called. If this value is 0, there is no more information for this function in the table because it has never been executed.
  • Function Time: Total time spent for executing the function, excluding its descendants.
  • Function + Descendants Time: Total time spent for executing the function, including its descendants.
  • % Function Time: Percentage of time spent in this function against the total execution time.
  • % Function + Descendants Time: Percentage of time spent for executing the function and its descendants against the total execution time.
  • Average Function Time: Average time spent for executing this function, excluding its descendants.
  • Max Function Time: Only if you set the option Compute F max and F + D max. Indicates the maximum time spent in a call while executing this function, excluding its descendants.
  • Max Function + Descendants Time: Only if you set the option Compute F max and F + D max time, see Performance profiling settings. This is the maximum time spent in a call while executing this function, including its descendants.
  • WCET: Only if you set the option WCET, see Performance profiling settings. It gives an evaluation of the Worst Case Execution Time. This information can be empty if the WCET could not be calculated during the execution. It is the case when one of the function and its descendants has never been executed. Click the chevron icon to deploy the list of functions that are not called.

Performance Profiling Functions report

Call Graph

The Call Graph part displays all the functions in an interactive call graph that can be moved from left to right or from top to bottom. If the option WCET has been set, a tooltip on each function (node of the graph) gives the WCET. For more information, see Performance profiling settings.