Ansicht
Dokumentation
ABENSTRING_EXPR_PERFO - STRING EXPR PERFO
General Material Data General Material DataDiese Dokumentation steht unter dem Copyright der SAP AG.
- Performance-Hinweis
Wenn auf der rechten Seite einer Zuweisung an eine auf der linken Seite angegebene Variable str vom Typ string in einem Zeichenkettenausdruck Zeichenketten angehängt werden, wird in folgenden Fällen direkt mit der Variable gearbeitet ohne ein Zwischenergebnis zu erzeugen.
- str &&= dobj1 && dobj2 && ... .
- str = |{ str }...{ dobj1 [format_options] }...{ dobj2 [format_options] }...|.
Die angehängten Zeichenketten dürfen für den Compiler nicht von str abhängen:
- Das Zielfeld str darf im Zeichenkettenausdruck nur einmal und nur ganz am Anfang vorkommen.
- In einem Zeichenketten-Template dürfen auf str keine Formatierungsoptionen angewendet werden.
- Es dürfen nur direkt angegebene Datenobjekte dobj1, dobj2, ... und keine anderen Ausdrücke oder Funktionen aufgeführt werden, selbst wenn diese nicht von str abhängen.
Die Optimierung wird also etwa in folgenden Fällen aufgehoben:
- str &&= ... && meth( ... ) && ... .
- str &&= ... && str && ... .
- str = |{ str }...{ expr( ... ) }...|.
- str = |{ str format_options }...|.
- str = |{ str }...{ str }...|.
Während das Aufheben der Optimierung für nicht zu häufig ausgeführte Zuweisungen in aller Regel unkritisch ist, wird dringend empfohlen, innerhalb von Schleifen nur die optimierbaren Formen zu verwenden, weil der Laufzeitbedarf ansonsten quadratisch mit der Anzahl der Iterationen anwächst. Innerhalb von Schleifen sollten die Ergebnisse von Ausdrücken und Funktionen, die nur dort bestimmt werden können, an Hilfsvariablen dobj1, dobj2, ... zugewiesen und diese verwendet werden.
Hinweis
Wenn keine Optimierung stattfindet, hängt die Laufzeit deshalb quadratisch von der Anzahl an Iterationen ab, da die Länge der Zeichenkette im Zwischenergebnis proportional zur Anzahl der Iterationen anwächst und in jedem Schleifendurchgang in das Ergebnis kopiert werden muss.
Im folgenden Beispiel zur Generierung einer HTML-Datei findet keine Optimierung statt. Die Laufzeit hängt quadratisch von der Anzahl der Iterationen n ab.
Das folgende Beispiel zeigt, wie die Laufzeit durch die Verwendung einer Hilfsvariable optimiert werden kann. Je größer die Zahl n ist, desto größer wird der Laufzeitunterschied zum vorherigen Beispiel.
SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 3499 Date: 20240523 Time: 114632 sap01-206 ( 71 ms )