| |||
Home > The Table Reports: Functions, Files, Classes, and Call Chains > Table report basics > Table report column headers |
Column headers vary by report type, as the statistics represented in them are dependent on whether they are broken down by function, file or class. Here is a list of all of the column headers contained in the table reports:
Name - The name of the function, file, or class, as described in the source code.
Coverage - The percentage of code actually executed. The color-coded symbol next to the percentage gives a visual indication of code coverage. A red circle indicates that the code was not called. A yellow triangle represents partial coverage. If any of the function, class or file's instructions were executed, but not completely, it is considered partially covered. A green square indicates 100% coverage; every line of code was executed, including both paths of conditional instructions.
Self Time - The values in this column indicate the amount of time that was spent executing instructions contained exclusively in this function, file or class. The units vary depending on the method of data collection. If you used the RealView ICE and RealView Trace 2 hardware to generate analysis data, time is measured in samples. If your source code was profiled against a Real-Time System Model, time is presented in estimated cycles. Samples, collected during runtime on actual hardware, are an accurate measure for time spent in a function when a large enough data sample is tested. RealView Trace 2 checks the target at an interval determined by the sampling rate and reports the instruction being executed. The ARM Profiler reports the number of times the application executed one of this function's instructions during the sampling process. Estimated cycles, used to measure performance on a Real-Time System Model, are an estimate of the number of cycles spent executing the function based on hardware configuration and instruction counts.
Total Time - Total time is measured in the same manner as self time, but represents the amount of time used by the function and all of the functions it calls. While a function may have a very low value in the self time field, its total time can be much higher if the functions it calls use a lot of time. This statistical field is not applicable to the file or class reports, so it only appears in the function and call chain reports.
Avg CPI - Cycles per instruction (CPI) measure how many clock cycles it takes to execute a single assembly instruction. Average CPI is the average number of cycles it takes to execute a single instruction within the function, class or file.
Functions - The number of functions contained in the class or file.
Delay - Delay measures the delta between the function, class or file's expected execution time without interlocks or other delays and its actual execution time. other delays include cache misses, bus arbitration, and page misses, to name a few. The ARM Profiler does not provide insight into what, besides interlocking, might have caused the delay, only that the delay occurred. If the data gathered in the current analysis report is captured using the RealView ICE and RealView Trace 2 hardware, the data listed here is a calculated value based on samples collected during the run and this real data is measured against the expected cycles per instruction. If the data is collected using a Real-Time System Model, the delay is the total number of interlock cycles caused by this function's instructions multiplied by the call count for each instruction.
Eff - The efficiency of the function, class or file. A ratio of delay to self time.
Called - The number of times this function is called.
Callers - The number of unique functions that called this function.
Callees - The number of unique functions called by this function. To see all of the functions called by this function, right-click on the function and choose the 'Select in Call Summary Option'. Doing this opens up the call summary, a report that includes all of the called functions as branches to the right of the selected function. You can filter certain called functions and see time and coverage statistics based only on the remaining called functions.
Read - The number of bytes that the instructions from this function, class or file read from memory.
Write - The number of bytes that the instructions from this function, class or file wrote to memory.
Accessed - The total number of memory interactions caused by the reads and writes of this function, class or file.
Size - The total size of the instructions contained in this function, class or file, measured in bytes.
Stack - The number of bytes used by the stack in this function. A question mark appears next to the total here if the function's stack usage is unknown.
Call Stack - The maximum number of bytes used by the stack in any call chain in which this function resides. For example, if a function is called in two separate call chains, one with a maximum stack depth of 512 and another with a maximum stack depth of 1024, the value 1024 appears in the Call Stack column. A question mark appears next to the total in the call stack field if it includes any unknown function stack usage.
Order - Considering a variety of factors, the ARM Profiler determines which function should be looked at first for stack depth optimization. Optimizing the function with 1 in the order column yields the greatest impact on your program's overall stack depth.
Location - This column reports the exact location of the function or class, listing both the file name and the exact line of the declaration.