Show TOC

Understanding the Trace FieldsLocate this document in the navigation structure

Context

Here is information on the fields displayed in the ABAP Trace Hit List and Call Tree. With two exceptions, the fields are identical in the Hit List and Call Tree views:

  • The Statement Filter column appears only in the Call Tree.
  • The Own Time columns are calculated differently in the Call Tree and the Hit List. See below for more information.

Field Name Description
Trace Event A trace event is an ABAP statement or other operation (a database operation, for example) for which the ABAP Trace records discrete performance data. For each trace event there is a separate ABAP Trace record.
  • In the Call Tree, the Trace Event field shows you the steps in the program that were recorded in the trace.
  • The Hit List, by contrast, initially sorts trace events by their cost. In addition, the Hit List may aggregate several trace records into a single trace record (see below for additional information).

The ABAP Trace does not record all ABAP statements and events as trace events, but only those that are potentially expensive in terms of resources. A CALL METHOD statement is recorded as a trace event. An IF statement is not. In the Hit List, you may see the legend (execution time for statements without own trace entry) in the Trace Entry field. This means that the run times shown include time accrued for ABAP statements that were not separately traced.

The trace events that you see in a particular trace also depend on the Setting Trace Preferences that you have selected for the ABAP trace.

Though the ABAP Trace does not record all ABAP statements and events, a trace nevertheless gives you a rich and detailed view of program performance and execution flow, especially since all procedure call statements are traced.

Aggregation

Identical trace events that are called identically are aggregated for the Hit List. Aggregation means that the runtime used in the aggregated trace events is added up to a single total. The Hits column is set to show how many trace events were aggregated. You can therefore calculate average values for single instances of the aggregated event.

Example: Imagine a class with methods M1 and M2. Now imagine a PROGRAM that calls M1 once and M2 twice:

  • For M1, the ABAP trace creates a single trace entry. The Hits column has the value 1.
  • If the two calls to M2 occurred via the same call path – the same sequence of callers – then the ABAP trace aggregates the two calls to M2. In this case, the Hits column would show 2, indicating that two executions of method M2 have been added up. If M2 is executed at different call positions in the PROGRAM, then the ABAP trace would create separate records for each call to M2.

Trace events are always aggregated for display in the Hit List. You can also have a trace Understanding Trace Configuration Options. In this case, the trace is more compact than a non-aggregated trace, and only the Hit List is available. The Call Tree requires non-aggregated data.

Own Time [Microseconds] In the Hit List: The amount of run time spent running a particular trace event or set of aggregated trace events. The Own Time excludes all time spent waiting for other trace events that were started from the present trace event. In the Hit List, Own Time lets you see how intrinsically expensive a traced statement or operation was, in and of itself.

Example: Imagine that method M1 has a total run time of six seconds. One tenth of a second is accounted for by creating an object that offers method M2. Nine tenths of a second is spent doing other processing in M1. Five seconds more are spent waiting for calls from M1 to method M2 to complete.

In the Hit List, the Own Time of method M1 is nine tenths of a second, because the rest of the run time of six seconds was accounted for creating an object (100 milliseconds) and waiting for by method M2 (five seconds). Each of these events has its own trace record. Their run times are therefore excluded from the Own Time of M1.

In the Call Tree: The Own Time calculation is more inclusive. The Own Time is the sum of all run times except those of called procedures.

Using the example above, the Own Time of M1 in the Call Tree is one second. The Own Time includes the nine-tenths of a second of statement processing in M1, as well as the 1/10 of a second for the creation of M2. The CREATE OBJECT M2 statement has its own trace record. But it is not a call to another procedure, so the CREATE OBJECT M2 run time is included in the Own Time of method M1.

The calculation of Own Time in the Call Tree lets you evaluate and compare procedure run times. Own Time is always the run time of a procedure less the run times of any called procedures.

Total Time [Microseconds] The amount of run time from the start to the finish of a particular trace event or set of aggregated trace events. The Total Time includes time spent waiting for other trace events started from the first trace event. Total Time lets you see the total contribution of the processing done within such tracing events as procedure calls.

Example: A method M1 has a total run time of six seconds. Five seconds of that time are spent waiting for method M2 to complete. Method M2 is called from method M1.

The Total Time of method M1 is six seconds, including the run time of method M2. If the Total Time of method M1 is high in the Hit List, then you would probably want to analyze the processing in method M1.

Own Time [%], Total Time [%] These columns show the Own Time and Total Time as a percentage of the total trace run time. These columns – for Own Time [Microseconds] and Total Time [Microseconds] – let you evaluate the importance of a particular trace event in the total run time of a traced application. Yes, a trace event has a long run time. But how much of the total run time is accounted for by the trace event? An event with an Own Time contribution to run time of a couple of percent does not merit the refactoring attention that you would pay to an event with a 33% share of run time.
Hits Hits shows you whether a trace entry shows aggregated run times or not. If you see the value 1 in Hits, then the trace event in not aggregated. The run times that you see then reflect a single execution of the statement or event recorded in the trace entry.

If you see a Hits of greater than 1, then that number of runs of the traced ABAP statement or event are aggregated in the run times that you see. Hits 3 with an Own Time of nine seconds means that each instance of the event ran for an average of three seconds.

Statement Filter The Call Tree view filters the trace display to highlight procedure calls such as CALL METHOD and CALL FUNCTION.

Clicking on Show in this field displays non-procedural trace events, such as database calls or use of an internal table, that were also recorded within the current procedure. These trace events are shown in contrasting colors.

The Hit List view shows by default all trace events, including the non-procedural events that the Call Tree hides by default.

This field is available only in the Call Tree view.

Calling Program, Called Program Calling Program identifies the ABAP program that started a trace event. Called Program identifies the ABAP program in which the traced event is located.

These fields let you differentiate between code in your own application and infrastructure code in the ABAP Application Server. Use the Filter field, for example, to show only trace events that belong to your own application.