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
ABAP_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.
ABAP_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 .
ABAP_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).
ABAP_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.
Documentation extract taken from SAP system, � Copyright SAP AG. All rights reserved