This question is regarding IBM Enterprise COBOL 4.2.
I have a program that requires a change and an increase to a working storage buffer. Unfortunately, this increase in buffer size has put me over the 128M max for the working storage section. My plan was to take some of the bigger 01
variables and make them EXTERNAL
, but I am concerned that this will impact system performance.
Does anyone know if making working storage variables external will slow down system performance?
I have been told that in about a year we will be switching to COBOL 6.1, so if it is a small performance decrease, we should be able to handle it until we get 6.1 (where the working storage limits have been increased to 2G)
As a practical matter, using EXTERNAL
is no different than the system calling a program with each external data item as if it were a linkage section data item. I suggest compiling a small program and examining the generated code to see what the differences are.
working-storage section.
01 ws-data pic x(8).
01 ext-data pic x(8) external.
linkage section.
01 ls-data pic x(8).
procedure division using ls-data.
begin.
move spaces to ws-data
move spaces tp ext-data
move spaces to ls-data
goback
.
I suspect there is no difference between accessing ext-data
and ls-data
.
This would provide specific information on how much of a "hit" to expect.