ABAP Keyword Documentation → ABAP - Release-Specific Changes → Changes in Releases 4.xx → Changes in Release 4.6C
Optimization in the Runtime Environment in Release 4.6C
In Release 4.6C, the entire ABAP runtime environment was overhauled, in terms of how programs were generated and executed. The following steps were taken to reduce the load size considerably and improve performance further.
1. Handling the Database Buffer
Other versions: 7.31 | 7.40 | 7.54
Modification 1
Handling the Database Buffer
The statement PERFORM n ON ON ROLLBACK
,
which is the equivalent to the statement PERFORM
n ON COMMIT, can now be used in the program. This means that all flagged form routines are executed when ROLLBACK WORK
is used.
Until now, if a termination message was triggered by a
CATCH SYSTEM-EXCEPTIONS ... statement, only one rollback was carried out in the task handler
area. Now the system calls a subroutine, which deletes all ON COMMIT
information and performs the scheduled subroutines.
The system field SY-ONCOM is now set for local
updates (as it is for asynchronous updates). This triggers a runtime error when a COMMIT WORK
is triggered for a local update.
Modification 2
Handling Type Groups
From now on, types in type groups that are not used are no longer
generated in the programs
that use the TYPE POOL
. Dynamic accesses are now performed by loading the load table for the type pools at runtime.
In addition, constants in type groups that are not used are no longer generated in the programs that include them. Duplicate control blocks for components are no longer created in key lists for ABAP Dictionary tables. Again, dynamic accesses are now performed using type pool load.
Modification 3
Handling Structures
Additional type information for structure components is no longer
generated when the
system performs simple operations like =
or IF
.
Now, when a structure is passed to a form routine
, the type comparison is also performed when the actual parameter is
flat and the formal parameter is
deep. (Previously, flat structures could only be compared with flat, and deep with deep).
Modification 4
Further Developments
Now, assignments to neighboring memory areas are bundled in one
internal statement, as
soon as the syntax check is performed or when the program is generated. This ensures that the system no longer creates superfluous administrative information.
If data objects from the Automation Controller
are referenced, and then disappear from the stack or internal table, the runtime environment aborts as soon as the stack is created. This means, for example, that the object can be displayed in the short dump.
If a program calls a second program at runtime, the system switches to this second program much more quickly than before. It also switches more quickly to a method called by another method. This performance gain is important, if both translation units are in the PXA (Program Executable Area), less so when the program is being read from the database.