Performance Profiling for C, C++ and Java
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.
This section of the report provides a high level view of the largest time consumers detected by Performance Profiling in your application.
This section of the report indicates, for each instrumented function, procedure or method (collectively referred to as functions), the following data:
Calls: The number times the function was called
Function (F) time: This value indicates the total time spent executing the function, exclusive of any calls to its descendants.
Function+descendant (F+D) time: The total time spent executing the function and any of its descendants (any other functions called by this function).
Note that since each of the descendants may have been called by other functions, it is not enough to simply add the descendants' F+D to the caller function's F. In fact, it is possible for the descendants' F+D to be larger than the calling function's F+D. The following example demonstrates three functions a, b and c, where both a and b each call c once:
function |
F |
F+D |
a |
5 |
15 |
b |
5 |
15 |
c |
20 |
20 |
The F+D value of a is less than the F+D of c. This is because the F+D of a (15) equals the F of a (5) plus one half the F+D of c (20/2=10).
F Time (% of root) and F+D Time (% of root): Same as above, expressed in percentage of total execution time
Average F Time: The average time spent each time the function was executed.
Min F+D: The minimum time spent executing the function and any of its descendants.
Max F+D: The maximum time spent executing the function and any of its descendants.
Note: The Min and Max values are optional, because their calculation uses a large amount of memory. To calculate these values, you must first activate the option in the Configuration Settings for the corresponding node.
Related Topics
Understanding Test and Runtime Analysis Reports | Using the Report Viewer