Show TOC

ABAP Memory InspectorLocate this document in the navigation structure

Mit Memory Inspector können Sie den Speicherverbrauch eines ABAP-Programms analysieren. In der Regel verwenden Sie Memory Inspector, wenn Sie Folgendes feststellen möchten:

  • Wie viel Speicher belegt eine ABAP-Anwendung? Ist der Speicherverbrauch höher als erwartet?
  • Hat eine ABAP-Anwendung Speicherlecks? Erhöht sich der Speicherverbrauch der Anwendung mit der Zeit? Wenn ja, in welchen Objekten?
Memory-Inspector-Ausprägungen: Transaktion und Debugger-Werkzeug
Memory Inspector steht in zwei Ausprägungen zur Verfügung:
  • Mit der eigenständigen Transaktion für Memory Inspector (S_MEMORY_INSPECTOR) analysieren und vergleichen Sie Speicherabzüge. Ein Speicherabzug zeichnet den Speicherverbrauch eines ABAP-Programms zu einem bestimmten Zeitpunkt auf.

    Die Memory-Inspector-Transaktion ist das ideale Werkzeug, um solche Speicherabzüge zu vergleichen, Speicherlecks zu suchen und den korrekten Speicherverbrauch Ihrer Anwendung zu überprüfen.

    Sammeln Sie Speicherabzüge der Anwendung zu verschiedenen Zeitpunkten. Beim Vergleich sehen Sie dann genau, wo und wie sich der Speicherverbrauch geändert hat.

  • Mit Memory Inspector im neuen ABAP Debugger analysieren Sie den Speicherverbrauch in Echtzeit in dem Programm, das Sie gerade debuggen. Im Debugger können Sie zwischen der Anzeige der Speicherobjekte und den Werten der Objekte in den Variablenanzeigen wechseln.

    Sie können auch beim Debuggen eines Programms Speicherabzüge - für die spätere Analyse - erstellen und vergleichen.

    Hier finden Sie die Dokumentation zu Memory Inspector im neuen ABAP Debugger.

    Hinweis Informationen zur Speicherarchitektur von ABAP AS finden Sie unter SAP Memory Management.
Suchen nach "aufgeblähten" Anwendungen
Memory Inspector ist optimal zur Analyse des Speicherverbrauchs geeignet. Wie jedoch können Sie "aufgeblähte" Anwendungen ausfindig machen, die aufgrund eines Speicherlecks oder hoher Speicherbelegung immer größer werden?

Es gibt zwei Werkzeuge, mit denen Sie die Verursacher hohen Speicherverbrauchs ermitteln können:

  • Verwenden Sie die Benutzerliste (Transaktion SM04), um den Speicherverbrauch online und in Echtzeit zu überwachen. In der Spalte Speicherverbrauch wird der Gesamtspeicher angezeigt, der dem Benutzer zugewiesen ist.

    Verwenden Sie die Transaktion SM04 zur Überwachung von Langläufer-Transaktionen, die zur wiederholten Verwendung offen bleiben, sowie zur Überwachung des Speicherverbrauchs von Langläufer-Hintergrundjobs.

  • Verwenden Sie SAP Workload: Statistikeinzelsätze — Übersicht (Transaktion STAD (Oberfläche nur in Englisch verfügbar) bzw. STADWD (Oberfläche auch in Deutsch verfügbar) für die Web-Dynpro-Version), um unter den bereits abgeschlossenen Transaktionen die Benutzer mit hohem Speicherverbrauch zu ermitteln.

    Mit der Auswahloption Show all records, grouped by business transaction können Sie die Anzeige nach Transaktion gegliedert aufrufen. Die Spalte Memory used (kB) zeigt den maximalen Speicherverbrauch einer Transaktion in jedem Dialogschritt.

    Verwenden Sie die Transaktion STAD, wenn speicherbezogene Kurzdumps auftreten wie SYSTEM_NO_ROLL oder TSV_TNEW_PAGE_ALLOC_FAILED oder wenn Sie Dialog-Workprozesse im Status PRIV beobachtet haben. Die Statistiksätze der Zeit unmittelbar vor diesen Ereignissen können Ihnen zeigen, welche Programme zu viel Speicher verbraucht haben.

Beachten Sie, dass Speicherprobleme so gut wie nie bei der Entwicklung oder bei Integrationstests auftreten. Zudem ist ABAP inhärent resistent gegenüber Speicherlecks, da die meisten Transaktionen und Anfragen diskret laufen und zügig abgeschlossen werden, so dass ihre Ressourcen schnell wieder freigegeben werden.

Schlussfolgerungen:

  • Sie müssen potenzielle Probleme aufspüren. Beobachten Sie Ihre ABAP-Programme bei Stress- und Skalierbarkeitstests oder in Produktivsystemen.
  • Konzentrieren Sie sich auf Transaktionen und Programme, die sehr lange laufen. Es ist nicht notwendig, Transaktionen oder Services zu prüfen, die diskret verwendet werden.

    Prüfen Sie Transaktionen, die offen bleiben und wiederholt für mehrere Operationen nacheinander verwendet werden. Prüfen Sie Reports, die in Hintergrundjobs laufen und die voraussichtlich Stunden oder sogar Tage dauern.