Skip to content

ABAP Keyword Documentation →  ABAP - Release-Specific Changes →  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


2. Handling type groups


3. Handling structures


4. Other developments

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 whenROLLBACK 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.