Hallo,
ich habe ein RPG Modul welches mir die Programmbibliothek zurück liefert:
Name: RPGACTLIB
Code:
D SDS
D LIBNAME 81 90
*
C *ENTRY PLIST
C PARM X_LIBNAME 10
C EVAL X_LIBNAME=LIBNAME
C EVAL *INLR=*ON
Nun habe ich jeweils ein RPG, CL und Cobol Programm welche dieses Modul 1000 mal aufrufen (Performance Test). Dabei fällt auf, dass das Cobol Programm wesentlich mehr CPU Zeit benötigt als das CL/RPG Programm. Die folgenden Auswertungen wurden durch das Journal QACGJRN aufgezeichnet:
Code:
JOB- CPU ZEIT
NAME AKTIV
ILE_RPG 638 819
ILE_COBOL 3.663 4.386
ILE_CL 655 825
RPG Code:
Code:
D CALLRPG PR ExtProc('RPGACTLIB')
D LIBNAME 10A
D
D LIBNAM S 10A
*
c do 1000
C callp CALLRPG(LIBNAM)
c enddo
C EVAL *INLR=*ON
CL Code:
Code:
PGM
DCL VAR(&LIB) TYPE(*CHAR) LEN(10)
DCL VAR(&ZAEHLER) TYPE(*DEC) LEN(5)
CHGVAR VAR(&ZAEHLER) VALUE(0)
ANF010:
CHGVAR VAR(&ZAEHLER) VALUE(&ZAEHLER + 1)
CALLPRC PRC(RPGACTLIB) PARM(&LIB)
IF COND(&ZAEHLER *NE 1000) THEN(GOTO +
CMDLBL(ANF010))
ENDPGM
Cobol Code:
Code:
WORKING-STORAGE SECTION.
01 LIB-WRK PIC X(10).
*-------------------------------------------------------
LINKAGE SECTION.
*-------------------------------------------------------
*-------------------------------------------------------
PROCEDURE DIVISION.
*-------------------------------------------------------
STEUER SECTION.
ANFANG.
PERFORM 1000 TIMES
CALL PROCEDURE "RPGACTLIB" USING LIB-WRK
END-PERFORM.
ENDE.
GOBACK.
Der Test wurde unter V4R5 als auch unter V5R2 ausgeführt.
Kann mir jemand erklären, warum das Cobol Programm in diesem Fall so viel mehr CPU Zeit verbraucht?
Gruß
Matthias
Bookmarks