Language Environment runtime options
This topic describes frequently asked questions about Language Environment® runtime options and their answers.
- Does Enterprise COBOL use HEAP for WORKING-STORAGE?
- Will lower HEAP storage values for COBOL performance affect the performance of C or C++ programs?
- Will lower HEAP storage values for COBOL performance affect PL/I performance?
- Does Enterprise COBOL use STACK storage?
- What do HEAP(KEEP) or LIBSTACK(KEEP) do? Does the KEEP suboption keep all of the HEAP or LIBSTACK storage or just the increments of extra storage that were obtained?
- How does ERRCOUNT relate to abends? Does ERRCOUNT only count HANDLED conditions?
Does Enterprise COBOL use HEAP for WORKING-STORAGE?
- Compiled with Enterprise COBOL V4.2 or earlier releases
- Compiled with the
DATA(24)
compiler option - Running in CICS®
- A COBOL V5.1.1 or later program in a program object that contains only COBOL programs (except COBOL 5.1.0) and assembler. There are no Language Environment interlanguage calls within the program object and no COBOL V5.1.0 programs.
- A COBOL V5 program in a program object where the main entry point is COBOL V5. In this case, the
program object can contain Language
Environment interlanguage calls, with COBOL statically linking with C, C++ or PL/I. All COBOL
V5 programs within such program objects (even if they are not the main entry point) have their
WORKING-STORAGE
allocated from heap storage. - A COBOL V6.1 or later program
Will lower HEAP storage values for COBOL performance affect the performance of C or C++ programs?
Yes. If the C programs use a lot of MALLOC statements, then C performance will be worse with lower HEAP storage values.
Will lower HEAP storage values for COBOL performance affect PL/I performance?
In general, the answer is no. However, performance might be slower for applications that have a high use of ALLOCATE and FREE. In this case, tune the HEAP values to improve performance. Also, if the application has many automatic variables, the STACK values should also be tuned to improve performance.
Does Enterprise COBOL use STACK storage?
Enterprise COBOL programs use STACK storage for LOCAL-STORAGE data items. Other COBOL programs do not use STACK storage.
COBOL runtime routines do use STACK storage.
What do HEAP(KEEP) or LIBSTACK(KEEP) do? Does the KEEP suboption keep all of the HEAP or LIBSTACK storage or just the increments of extra storage that were obtained?
The KEEP suboption causes Language Environment to keep all of the storage obtained, including the initial and incremental amounts.
How does ERRCOUNT relate to abends? Does ERRCOUNT only count HANDLED conditions?
ERRCOUNT is a count of errors, conditions, abends, and exceptions that are allowed before Language Environment abends with its own abend code. If an error is not HANDLED, the application will terminate so ERRCOUNT will have no effect.