ABAP Profiler – ABAP Tracing in ADT

Der ABAP Profiler ist ein mächtiges Werkzeug der ABAP Development Tools (ADT) für Eclipse. Er ermöglicht es, ABAP-Programme detailliert zu analysieren und Performance-Engpässe zu identifizieren. Du kannst den ABAP Profiler direkt aus dem ABAP Source Editor oder der Projekt-Explorer-Ansicht in Eclipse starten.

In diesem Artikel stelle ich Dir den ABAP Profiler und seine vielfältigen Analysewerkzeuge im Detail vor.

ABAP Profiler

Der ABAP Profiler ist ein leistungsstarkes Tracing-Tool, das in die ABAP-Entwicklungswerkzeuge (ABAP Development Tools, ADT) innerhalb der Entwicklungsumgebung Eclipse integriert ist. Er ist für jeden ausführbaren ABAP-Code verfügbar, einschließlich globaler Klassen und ABAP-Unit-Tests. Mit dem ABAP-Trace, der die Ergebnisse des ABAP-Profilers enthält, können Performance, Programmablauf und Datenbankzugriffe analysiert werden.

ABAP Profiler in Eclipse starten

Den ABAP Profiler startest Du direkt in Eclipse aus dem jeweiligen ABAP-Programm heraus. In der Baumstruktur im Project Explorer suchst Du nun das ABAP-Programm heraus und klickst auf den Knoten mit der rechten Maustaste. Daraufhin wählst Du „Profile As > ABAP Application (Console)“.

ABAP Profiler starten

Alternativ kannst Du den ABAP Profiler über den entsprechenden Button in der Menüleiste und dann „Profile As > ABAP Application (Console)“ starten. Hier musst Du im Editor das ABAP-Programm geöffnet haben.

ABAP Profiler starten

Danach öffnet sich ein Fenster mit den Trace-Parametern. Diese werden im nächsten Abschnitt im Detail erläutert. Die Trace-Parameter bestätigst Du mit dem Button „Finish“. Daraufhin hast Du einen ABAP Profiler Trace erstellt. Diesen kannst Du in der Perspektive „ABAP Profiling“ näher analysieren. Falls Du die Perspektive bereits einmal geöffnet hast, kannst Du in der Menüleiste den entsprechenden Button klicken. Andernfalls klickst Du auf „Open Perspective“ und wählst „ABAP Profiling“ aus.

ABAP Profling Perspektive öffnen

Anschließend wechselst Du in die entsprechende Perspektive.

ABAP Profiling Perspektive

In der Registerkarte „ABAP Traces“ werden nun die erstellten ABAP Traces angezeigt. Falls diese Liste nicht aktuell ist, kannst Du durch Auswahl eines Eintrages und der F5-Taste oder dem Button „Refresh list of trace files“ die Liste aktualisieren.

Einen einzelnen ABAP Trace kannst Du durch Doppelklick auf einen Eintrag öffnen. Nun wechselt sich die Anzeige und Du kannst Die allgemeinen Informationen und die Laufzeitverteilung näher analysieren. Durch Klick auf den Hyperlink eines entsprechenden Analysetools öffnet sich das Tool und zeigt die entsprechenden Analysen des ABAP-Programms näher an. Alternativ kannst Du im unteren Bereich die entsprechende Registerkarte anklicken, um das Tool zu öffnen.

ABAP Profiler Trace

Die Analysetools werden ebenfalls in einem separaten Abschnitt näher erläutert.

ABAP Profiler Trace-Parameter

Mit den Trace-Parametern beeinflusst Du die Größe und Granularität des Trace-Ergebnisses.

ABAP Profiler - Trace Parameter

Aggregation

Im Abschnitt „Perform aggregated measurement?“ legst Du fest, wie der ABAP Profiler mit wiederholten Ausführungen umgeht, z.B. wiederholte Aufrufe derselben Methode. Je mehr der ABAP Profiler aggregiert, desto weniger Speicherplatz wird benötigt, um das Trace-Ergebnis zu speichern. Ein Nachteil dabei ist, dass einige Analysetools bei aggregierten Trace-Ergebnissen nicht verfügbar sind.

Du kannst aus drei Optionen wählen:

  • Keine Aggregation, größte Dateigröße, alle Tools verfügbar
  • Teilaggregation (pro Aufruf-Anweisung), mittlere Dateigröße, Aufrufsequenz nicht verfügbar
  • Volle Aggregation, kleinste Dateigröße, Aggregierter Aufrufbaum nicht verfügbar

Granularität

Im Abschnitt „Which ABAP statements should be traced?“ kannst Du festlegen, wie granular die Messung sein soll. Du kannst aus drei gängigen Voreinstellungen wählen oder durch die Auswahl von Benutzerdefinierte Anweisungen Deine eigene Auswahl unter Details eingeben.

Auch hier beeinflusst Deine Wahl die Dateigröße und den Informationsgehalt des Trace-Ergebnisses.

Die folgenden Voreinstellungen existieren:

  • Nur prozedurale Einheiten – kleine Dateigröße, die Laufzeit aller Anweisungen wird der umgebenden prozeduralen Einheit (Methode) zugerechnet
  • Prozedurale Einheiten, SQL – mittlere Dateigröße, die Laufzeit von Datenbankzugriffen wird separat verfolgt und nicht der umgebenden prozeduralen Einheit zugerechnet
  • Prozedurale Einheiten, SQL, interne Tabellen – große Dateigröße, die Laufzeit von Datenbankzugriffen und Operationen an internen Tabellen wird separat verfolgt und nicht der umgebenden prozeduralen Einheit zugerechnet

Startoption

Im Abschnitt „When should the trace start?“ kannst Du auswählen, wann Du den Trace starten möchtest. Du hast folgende Optionen:

  • Sofort – die gesamte Programmausführung wird getraced
  • Manuelles Ein- und Ausschalten – die Programmausführung beginnt mit deaktiviertem Trace. Wenn das Programm einen Breakpoint erreicht, kannst Du im Kontextmenü des Breakpoints die Option ABAP-Trace Ein/Aus wählen.

ABAP Profiler Analysetools

Condensed Hit List

Die komprimierte Trefferliste (Condensed Hit List) ermöglicht es Dir, die aufwändigsten prozeduralen Einheiten zu finden, zum Beispiel Methoden.

ABAP Profiler - Condensed Hit List

Diese Liste zeigt Laufzeitmessungen für Trace-Ereignisse an. Sie wird als „komprimiert“ bezeichnet, weil sie sich auf prozedurale Einheiten beschränkt. Datenbankzugriffe und andere Trace-Ereignisse sind hier nicht aufgeführt.

Wenn Du an allen Trace-Ereignissen interessiert bist, sieh Dir stattdessen die Trefferliste (Hit List) an.

Hit List

Die Trefferliste (Hit List) zeigt die größten aufwändigsten Einheiten nach Aufrufposition an.

ABAP Profiler - Hit List

Aggregated Call Tree

Der aggregierte Aufrufbaum (Aggregated Call Tree) ermöglicht es Dir, die Reihenfolge zu analysieren, in der prozedurale Einheiten aufgerufen wurden.

ABAP Profiler - Aggregated Call Tree

Wenn ein Aufruf einer prozeduralen Einheit wiederholt wird (zum Beispiel in einer Schleife), dann erscheint der Aufruf nur einmal im aggregierten Aufrufbaum. Die Zahl in der Spalte Executions (Ausführungen) zeigt die Anzahl der Wiederholungen an.

Wenn Du an einer nicht aggregierten Anzeige interessiert bist, sieh Dir stattdessen die Aufrufsequenz (Call Sequence) an.

Aggregated Timeline

Die Aufruf-Zeitleiste (Aggregated Timeline) ermöglicht es Dir, die Aufrufsequenz und die benötigte Zeit in Form eines Diagramms zu visualisieren.

ABAP Profiler - Aggregated Timeline

Das Diagramm besteht aus zwei Teilen: Einer Übersicht der gesamten Spur am unteren Rand und einer vergrößerten Detailansicht oben. Eine Werkzeugleiste auf der linken Seite ermöglicht es Dir, hinein- oder herauszuzoomen und den Fokus zu verschieben.

Der Maßstab oberhalb des Detaildiagramms zeigt die Zeit von links nach rechts an. Jeder Balken illustriert ein Ereignis mit seiner Start- und Endzeit. Je breiter ein Balken ist, desto mehr Zeit wurde für dieses Ereignis verbraucht.

Mit einem Linksklick auf einen Balken werden die Details im Detailbereich der ABAP Profiling-Perspektive angezeigt. Auf diese Weise kannst Du herausfinden, welches Ereignis ein bestimmter Balken repräsentiert.

Das Diagramm verwendet Farben, um verschiedene Arten von Ereignissen zu unterscheiden.

Call Sequence

Die Aufrufsequenz (Call Sequence) zeigt die Abfolge der Trace-Ereignisse in einer Hierarchie an.

ABAP Profiler - Call Sequence

Call Timeline

Die Aufruf-Zeitleiste (Call Timeline) zeigt ein Diagramm der Trace-Ereignisse und der dafür aufgewendeten Zeit an. Die grafische Darstellung in der Aufruf-Zeitleiste ist eine sehr gute Möglichkeit, wiederholte Datenbankzugriffe zu identifizieren.

ABAP Profiler - Call Timeline

Database Accesses

Database Accesses (Datenbankzugriffe) zeigt Dir die Datenbankzugriffe an. Das Werkzeug ermöglicht es Dir, die Datenbankobjekte zu finden, auf die zugegriffen wurde, und die aufwändigsten Datenbankzugriffen zu identifizieren. Es ist auch eine gute Möglichkeit, wiederholte Abfragen von derselben Datenbanktabelle zu identifizieren.

ABAP Profiler - Database Accesses

Das Werkzeug zeigt nur Ereignisse an, die sich auf die Datenbank beziehen. Bei wiederholten Datenbankzugriffen wird die Laufzeit aggregiert. Die Anzahl der Ausführungen findest Du in der Spalte Executions (Ausführungen).

Über den Autor

Andreas Geiger

Mein Name ist Andreas Geiger und ich bin ein erfahrener Senior SAP Berater. Mit mehr als 10 Jahren Berufserfahrung habe ich mehrere SAP-Projekte erfolgreich abgeschlossen und umfangreiche Kenntnisse in verschiedenen Bereichen wie SAP FI, SAP MM und ABAP erworben. Nun möchte ich mein Wissen mit Dir teilen, um Dir einen Mehrwert zu bieten und Dich bei Deiner täglichen Arbeit mit dem SAP-System zu unterstützen.

Mehr zu ERP UP

ERP UP unterstützen

Wenn Du mit ERP UP zufrieden bist, kannst Du mich gerne unterstützen. Dabei gibt es unzählige Möglichkeiten, wie Du mich einfach und schnell unterstützen kannst. Wie Du genau ERP UP unterstützen kannst, erfährst Du hier. Vielen Dank.

Schreibe einen Kommentar