BETART Environment Variable
1. Introduction
BETART is used to set various characteristics of the runtime system.
The specification consists of a list of
entries, separated by ':' (colon). Colon in the beginning
and at the end of the BETART value is optional.
The specification ignores case except for the case of
the string-entry values.
Entries may appear more than once in BETART. The last
specification will in this case be used. The semantics
of the different BETART entries are given below.
There are three types of entries: boolean-, integer-,
and string-entries.
Example of usage (UNIX syntax):
setenv BETART "InfoIOA:IOA=1024:InfoFile=info.dump"
or alternatively
setenv BETART "InfoIOA:IOA#1024:InfoFile=info.dump"
2. General entries
Boolean-entries
The default values for all boolean entries are
false. Mentioning the boolean entries in BETART
sets its value to true.
Boolean entries have the form <entry>, where
<entry>
is one of:
-
Info
- Print information about heap sizes etc.
at startup.
-
InfoIOA
- Print information on garbage collection
in the infant object area during execution.
-
InfoAOA
- Print information on garbage collection
in the adult object area during execution.
-
InfoAOAUse
- Print information on the amount of memory
in the adult object area during execution.
At every IOA garbage collection, the following
format is used
(AOAUSE:<num>:<amount>/<total>)
,
where <num>
is the sequence number of the IOAGC,
<amount>
is the amount of free memory in AOA,
and <total>
is the total size of AOA.
-
InfoCBFA
- Print information about the callback
function area during execution.
-
InfoHeapUsage
InfoHeap
- Print summary of complete heap memory
usage at various points during execution.
Notice, that this will not be the complete
memory usage for the process, since the
code and and data segments as well as
various internal tables also use memory.
-
InfoAll
- Sets most Info-entries: Info, InfoIOA,
InfoAOA, InfoCBFA, InfoHeapUsage.
-
InfoPersistence
- Print a number of statistics on the persistence
implementation.
-
TimeIOA
- Measure how much time IOA garbage collection
uses in total. For information on how long each IOA GC
lasts, use InfoIoa instead. The accuracy depends on the
accuracy of the
timers of the operating system. Do not enable any Info
settings while using TimeIOA, as they may interfere with
the timing.
-
TimeAOA
- Measure how much time AOA garbage collection
uses in total. For information on how long each IOA GC
lasts, use InfoAoa instead. The accuracy depends on the accuracy of the
timers of the operating system. Do not enable any Info
settings while using TimeAOA, as they may interfere with
the timing.
-
QuaCont
- Continue execution after runtime detection
of qualification error in reference
assignment.
-
SimpleDump
- If a program crashes, a dump file will be created,
see
[MIA 90-02]. This will contain a simple trace
of the runtime stack at the time of the crash and,
by default, also a very detailed low-level trace
of the stack. By setting
SimpleDump
only the simple trace will be included in dumps.
-
NoCatch
NoCatchException
- Exceptions/signals raised by the operating system
will, by default, be caugt by the BETA runtime system
and result in a dump of the current stack. By setting
Nocatch
(aka NoCatchException
)
the exception is not caught by BETA but handled in
the default way by the operating system.
-
NoAOAGc
- Do not garbage collect the adult object area. This is not
useful for long running programs, as the size of AOA will
keep increasing until there is no more memory available.
Integer-entries
These have the form <entry>=<value>, or
<entry>#<value>, where <entry> is one of the following,
and <value> is any positive integer. The
default values are noted in parenthesis below:
-
IOA
- The size in Kb of the infant object area
(Default: 1024).
-
IOAPercentage
- The minimum free fraction in percent of
the infant object area. A value of 0 or close to zero
will stress AOA, and high values will slow down the
program. Values close to 100 may have ill effects.
(Legal range: 0 to 100, but useful range is 3 to 40. default: 10).
-
IOANumSlices
- Number of slices to divide IOA into.
Only for MT betarun.
If both IOANumSlices and IOASliceSize are set,
the one set last will be used.
-
IOASliceSize
- Size of each slice in IOA.
Only for MT betarun.
If both IOANumSlices and IOASliceSize are set,
the one set last will be used.
-
AOAMinFree
- The minimum free area in Kb in the adult
object area. If less than this size is
free after an AOA garbage collection,
then the next allocation in AOA will
cause a new block to be allocated.
Please note that both AOAMinFree and AOAPercentage
is used to determine if this is the case, so it
is meaningfull to set both.
Setting both very low may result in problems, as
that prvents IOA from promoting enough objects.
(Legal range: 0 to infinity, default: 1024).
-
AOAPercentage
- The minimum free fraction in percent of
the adult object area. If less than this
fraction is free after an AOA garbage
collection, then the next allocation in
AOA will cause a new block to be allocated.
Please note that both AOAMinFree and AOAPercentage
is used to determine if this is the case, so it
is meaningfull to set both.
Setting both very low may result in problems, as
that prvents IOA from promoting enough objects.
(Legal range: 0 to 50, default: 10).
-
CBFA
- The size in Kb of one block in the callback
function area (Default: 1).
String-entries
These have the form
<entry>=<value>
,
or
<entry>#<value>
,
where <entry> is one of the following,
and <value>
is any string. The default
values are noted in parenthesis below:
-
InfoFile
- Name of file on which to write all this
information (Default:
stderr
).