Performance Tester - Vergleich von Codes

Posten Sie hier Tutorials & Cookbooks.
7 Beiträge • Seite 1 von 1
7 Beiträge Seite 1 von 1

Performance Tester - Vergleich von Codes

Beitrag von RIG (Specialist / 110 / 30 / 1 ) »
Hier mal ein Code den ich zum vergleich verschiedener Ansätze zu Problemlösungen verwende:

Code: Alles auswählen.

*&---------------------------------------------------------------------*
*& Report  ZTEST_PERFORMANCETEST
*&
*&---------------------------------------------------------------------*
*&
*&    Test für bis zu 3 Codes
*&
*&---------------------------------------------------------------------*

REPORT  ZTEST_PERFORMANCETEST.

*---------------------------------------------------------------------------------------------*
* YOUR TYPES, DATA AND FIELSYMBOLS    OR Top_include HERE :



*---------------------------------------------------------------------------------------------*
      "---Zeitmessungsvars-----------------------------------
Data: gv_Loop TYPE int4,
      gv_diff_TSL_1 type timestampL,
      gv_start_timestamp_1 type timestampL,
      gv_end_timestamp_1 type timestampL,

      gv_diff_TSL_2 type timestampL,
      gv_start_timestamp_2 type timestampL,
      gv_end_timestamp_2 type timestampL,

      gv_diff_TSL_3 type timestampL,
      gv_start_timestamp_3 type timestampL,
      gv_end_timestamp_3 type timestampL.


*---------------------------------------------------------------------------------------------*
*Anzahl Loops verändern: > wenn keine Zeitdifferenz gemessen wurde
gv_loop = 10.

*******************************************************************************************************************
*******************************************************************************************************************
*******************************************************************************************************************

get TIME STAMP FIELD gv_start_timestamp_1.

*----------------------------------------------------------------
DO gv_Loop TIMES.

  "MY TESTCODE HIER*

ENDDO.
*----------------------------------------------------------------

get TIME STAMP FIELD gv_end_timestamp_1.
gv_diff_TSL_1 = gv_end_timestamp_1 - gv_start_timestamp_1.
*********************************************************************************************************************
get TIME STAMP FIELD gv_start_timestamp_2.

*----------------------------------------------------------------
DO gv_Loop TIMES.

    "MY TESTCODE HIER*

ENDDO.
*----------------------------------------------------------------

get TIME STAMP FIELD gv_end_timestamp_2.
gv_diff_TSL_2 = gv_end_timestamp_2 - gv_start_timestamp_2.
*********************************************************************************************************************
get TIME STAMP FIELD gv_start_timestamp_3.

*----------------------------------------------------------------
DO gv_Loop TIMES.

        "MY TESTCODE HIER*

ENDDO.
*----------------------------------------------------------------

get TIME STAMP FIELD gv_end_timestamp_3.
gv_diff_TSL_3 = gv_end_timestamp_3 - gv_start_timestamp_3.




*********************************************************************************************************************
* Ausgabe *

Write: / , / , / ,
       / , 'Startzeit: ' , gv_start_timestamp_1,
       / , 'Endzeit  : ' , gv_end_timestamp_1,
       / , 'Zeitdiff.: ' , gv_diff_TSL_1,
       / , / , / ,
       / , 'Startzeit: ' , gv_start_timestamp_2,
       / , 'Endzeit  : ' , gv_end_timestamp_2,
       / , 'Zeitdiff.: ' , gv_diff_TSL_2,
       / , / , / ,
       / , 'Startzeit: ' , gv_start_timestamp_3,
       / , 'Endzeit  : ' , gv_end_timestamp_3,
       / , 'Zeitdiff.: ' , gv_diff_TSL_3.

Bei Datenbankoperationen sollte man allerdings genau wissen wo man cleart bzw. eigene Variablen für alle Vergleichcodes verwenden um keine unechten Zeitdifferenzen zu bekommen.

Also alles was nicht zum wirklichen vergleichen gehört am besten raus aus den Loops.

Für Anregungen bin ich gern zu haben..

Viel Spass und Erfolg damit...

MfG RiG

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Performance Tester - Vergleich von Codes

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »
Gibt es im Standard unter Tcode SE38 --> Enviroment --> Examples --> Performance Exampels

Re: Performance Tester - Vergleich von Codes

Beitrag von Alexander D. (Expert / 682 / 30 / 84 ) »
Unit605 hat geschrieben:Gibt es im Standard unter Tcode SE38 --> Enviroment --> Examples --> Performance Exampels
das schon, aber damit kann man nur die Laufzeit im vorgegebenen Code messen, oder?

bei der Berechnung von gv_diff_TSL_1, gv_diff_TSL_2 und gv_diff_TSL_3 hätte ich vielleicht noch durch gv_Loop geteilt, um nicht die gesamte, sondern eine durchschnittliche Laufzeit je Lauf auszugeben
schöne Grüße
Alexander

ECC 6.0 EHP 7

Re: Performance Tester - Vergleich von Codes

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »
"Normalerweise" kann man dort auch eigenen Code eingeben und den vorhanden auch aendern.

Oft ist es aber in Firmen so, dass die beiden Controls nicht eingabebereit sind.

Im Entwicklungssystem verstehe ich nie, warum die nicht eingabebereit sind, im Produktiv muessen sie allerdings inaktiv sein.

Re: Performance Tester - Vergleich von Codes

Beitrag von black_adept (Top Expert / 4087 / 126 / 940 ) »
Wenn man das Coding innerhalb der LOOPs in eine eigene FORM-Routine kapselt kann man eine Laufzeitmessung auch ganz einfach via SE30 machen.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Performance Tester - Vergleich von Codes

Beitrag von RIG (Specialist / 110 / 30 / 1 ) »
Alexander D. hat geschrieben:
Unit605 hat geschrieben:Gibt es im Standard unter Tcode SE38 --> Enviroment --> Examples --> Performance Exampels
das schon, aber damit kann man nur die Laufzeit im vorgegebenen Code messen, oder?

bei der Berechnung von gv_diff_TSL_1, gv_diff_TSL_2 und gv_diff_TSL_3 hätte ich vielleicht noch durch gv_Loop geteilt, um nicht die gesamte, sondern eine durchschnittliche Laufzeit je Lauf auszugeben
Ja, die Codes dort zu ändern ist nicht so einfach....

und bzgl der Teilung durch Loop: Da kommen dann zu kleine Differenzen raus die untergehen. So lässt sich relativ leicht ablesen was länger dauert und was schneller geht. Die Laufzeit eines ganzen Programms kann man ja auch über Antwortzeit herausbekommen, das ist eher nur zum reinen Vergleich von Codes gedacht die dasselbe machen.

Re: Performance Tester - Vergleich von Codes

Beitrag von babap (Expert / 681 / 1 / 1 ) »
Hallo,

zur reinen Berechnung der Laufzeit und zu Performance-Vergleich gibt es auch den Befehl

Code: Alles auswählen.

DATA: T1 type i.
DATA: T2 type i.
DATA: T3 type i.

GET RUN TIME FIELD T1.
...
...
GET RUN TIME FIELD T2.

T3 = T3 - T1 + T2.
Dabei hat man dann in T3 die Zeit in Microsekunden aus dem Messbereich (zuzüglich der Zeit, die man vielleicht schon vorher gemessen hat und dazuaddieren wollte ...)

Aber noch viel einfacher ist es, die Messtrecke in einen Funktionbaustein zu kapseln, und diesen im Testlauf auszuführen.
Ggf. noch die Alternativen über Flags auswählen, über CASE -Anweisung die Laufzeit von verschiedenem Coding messen ...

Gruß
Babap

Seite 1 von 1

Vergleichbare Themen

1
Antw.
1571
Views
Dokumentation des Codes
von c0lt.seavers » 16.03.2007 10:14 • Verfasst in ABAP® für Anfänger
5
Antw.
5767
Views
QR Codes in Smartforms einbinden
von DD_71 » 06.11.2012 10:14 • Verfasst in ABAP® Core
2
Antw.
2054
Views
Einrichten des IBAN Codes
von Gorlim81 » 28.02.2006 08:10 • Verfasst in Financials
0
Antw.
1850
Views
1
Antw.
2733
Views
Vergleich JSP / BSP
von Tserva » 07.11.2006 21:50 • Verfasst in Java & SAP®

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
Gestern von Bright4.5 1 / 511
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2146
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8742