Profiler output: Call graph

The profiler call graph provides detailed function call information.

The section "Call graph" provides the following details for each function:

  1. The functions that called it, the number of calls, and an estimation of the percentage of time spent in these functions.
  2. The functions called, the number of calls, and an estimation of the time that was spent in the subroutines called from this function.
Tip: Runtime system internal function names start with the rts_ prefix. For example, the rts_display() function implements the DISPLAY instruction.
Table 1. Call graph columns
Column name Description
index Each function has an index which appears at the beginning of its primary line.
%total Percentage of time spent in this function. Includes time spent in subroutines called from this function.
%self Percentage of time spent in this function excluding the time spent in subroutines called from this function.
%child Percentage of time spent in the functions called from this function.
calls/of Number of calls / Total number of calls
name Function name

Output example:

index      %total  %self  %child  calls/of	 name
...
           15.63    1.09   14.54      1/2        <-- myprog.main
           38.84    2.07   36.77      1/2        <-- myprog.fB
[5]        54.47    3.16   51.31        2        *** myprog.fC
           51.31   24.42   26.89      7/8        --> mymod.fA

Description:

  • Note that functions are prefixed with module names.
  • The three stars *** indicate the function that is analyzed: myprog.fC.
  • myprog.fC consumed 54.47% of the CPU time: 3.16% in the actual function code, plus 51.31% in the called functions.
  • myprog.fC has been called two times (one time by myprog.main and a second time by myprog.fB)
  • myprog.fC has called the mymod.fA function 7 times.
  • mymod.fA has been called 8 times in the program.