Ansicht
Dokumentation
ABENCONVERSION_PERFORMANCE - CONVERSION PERFORMANCE
CL_GUI_FRONTEND_SERVICES - Frontend Services SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3upDiese Dokumentation steht unter dem Copyright der SAP AG.
Performance-Hinweise zu Konvertierungen
Zuweisungen
Bei Zuweisungen zwischen Datenobjekten unterschiedlicher Datentypen finden Konvertierungen nach bestimmten Konvertierungsregeln statt, die mit Kosten verbunden sind. Wenn immer möglich, sollten Konvertierungen vermieden und nur Datenobjekte vom gleichen Typ einander zugewiesen werden.
Beispiel
Das folgende Beispiel enthält Schleifen über Zuweisungen mit und ohne Konvertierung. Die Schleife ohne Konvertierung ist um einen Faktor von rund 20 schneller als die Schleife mit Konvertierung.
-
DATA: num TYPE n LENGTH 10,
int TYPE i,
t1 TYPE i,
t2 TYPE i,
tn TYPE i,
ti TYPE i,
r TYPE p LENGTH 8 DECIMALS 2.
GET RUN TIME FIELD t1.
DO 1000000 TIMES.
num = sy-index.
ENDDO.
GET RUN TIME FIELD t2.
tn = t2 - t1.
GET RUN TIME FIELD t1.
DO 1000000 TIMES.
int = sy-index.
ENDDO.
GET RUN TIME FIELD t2.
ti = t2 - t1.
r = tn / ti.
Operandenpositionen
Um unnötige Konvertierungen zu vermeiden sollten auch Datenobjekte in Operandenpositionen immer passend zum Operandentyp angegeben werden.
Beispiel
An Operandenpositionen, an denen eine ganze Zahl erwartet wird, wie z.B. bei Indexangaben, kann ein beliebiges numerisches Datenobjekt angegeben werden. Empfohlen ist aber der passende numerische Datentyp (meistens i). Im folgenden Beispiel ist Schleife, in der über ein Feld vom Typ n auf eine interne Tabelle zugegriffen wird ca. 1,3 mal langsamer als beim Zugriff über ein Feld vom Typ i.
-
DATA: itab TYPE table of i,
num TYPE n LENGTH 1 value '6',
int TYPE i value 6,
t1 TYPE i,
t2 TYPE i,
tn TYPE i,
ti TYPE i,
r TYPE p LENGTH 8 DECIMALS 2.
APPEND 1 TO itab.
GET RUN TIME FIELD t1.
DO 10000000 TIMES.
READ TABLE itab INDEX num TRANSPORTING NO FIELDS.
ENDDO.
GET RUN TIME FIELD t2.
tn = t2 - t1.
GET RUN TIME FIELD t1.
DO 10000000 TIMES.
READ TABLE itab INDEX int TRANSPORTING NO FIELDS.
ENDDO.
GET RUN TIME FIELD t2.
ti = t2 - t1.
r = tn / ti.
rdisp/max_wprun_time - Maximum work process run time TXBHW - Original Tax Base Amount in Local Currency
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 3544 Date: 20240523 Time: 181018 sap01-206 ( 42 ms )