gprof: Primary
1
1 5.2.1 The Primary Line
1 ----------------------
1
1 The "primary line" in a call graph entry is the line that describes the
1 function which the entry is about and gives the overall statistics for
1 this function.
1
1 For reference, we repeat the primary line from the entry for function
1 'report' in our main example, together with the heading line that shows
1 the names of the fields:
1
1 index % time self children called name
1 ...
1 [3] 100.0 0.00 0.05 1 report [3]
1
1 Here is what the fields in the primary line mean:
1
1 'index'
1 Entries are numbered with consecutive integers. Each function
1 therefore has an index number, which appears at the beginning of
1 its primary line.
1
1 Each cross-reference to a function, as a caller or subroutine of
1 another, gives its index number as well as its name. The index
1 number guides you if you wish to look for the entry for that
1 function.
1
1 '% time'
1 This is the percentage of the total time that was spent in this
1 function, including time spent in subroutines called from this
1 function.
1
1 The time spent in this function is counted again for the callers of
1 this function. Therefore, adding up these percentages is
1 meaningless.
1
1 'self'
1 This is the total amount of time spent in this function. This
1 should be identical to the number printed in the 'seconds' field
1 for this function in the flat profile.
1
1 'children'
1 This is the total amount of time spent in the subroutine calls made
1 by this function. This should be equal to the sum of all the
1 'self' and 'children' entries of the children listed directly below
1 this function.
1
1 'called'
1 This is the number of times the function was called.
1
1 If the function called itself recursively, there are two numbers,
1 separated by a '+'. The first number counts non-recursive calls,
1 and the second counts recursive calls.
1
1 In the example above, the function 'report' was called once from
1 'main'.
1
1 'name'
1 This is the name of the current function. The index number is
1 repeated after it.
1
1 If the function is part of a cycle of recursion, the cycle number
11 is printed between the function's name and the index number (⇒
How Mutually Recursive Functions Are Described Cycles.). For
1 example, if function 'gnurr' is part of cycle number one, and has
1 index number twelve, its primary line would be end like this:
1
1 gnurr <cycle 1> [12]
1