Ansicht
Dokumentation

ABENCONVERSION_PERFORMANCE - CONVERSION PERFORMANCE

ABENCONVERSION_PERFORMANCE - CONVERSION PERFORMANCE

CL_GUI_FRONTEND_SERVICES - Frontend Services   SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

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 )