Sets the additional allocation threshold that triggers a GC in the blocking generation in 64-bit LispWorks.
An integer between 0 and 7, inclusive.
An integer greater than 12800, or a real in the inclusive range [0 100], or
nil
.
The function
set-gen-num-gc-threshold
sets the threshold for additional allocation that triggers a garbage collection (GC) in generation
gen-num
when this is the blocking generation (as set by set-blocking-gen-num). A GC is triggered when the allocation in generation
gen-num
grows more than
threshold
over the allocation after the last GC of this generation (or a higher generation).
To set the threshold, threshold can be an integer greater than 12800, which is interpreted as the absolute value. Alternatively threshold can be a real number in the inclusive range [0 100], which is multiplied by the allocation since the previous GC to get the actual threshold to set.
The default threshold for all generations is 1. That is, when the allocation in the generation has doubled since the previous GC it is collected automatically.
set-gen-num-gc-threshold
can be called when the generation
gen-num
is not the blocking generation, and will set the value for that
gen-num
. Such a call will not take effect until the generation
gen-num
becomes the blocking generation, as set by a call to set-blocking-gen-num (with
:do-cg t
).
Increasing the threshold reduces the number of GC calls, but may increase the virtual memory usage.
set-gen-num-gc-threshold
returns the old threshold for the generation
gen-num
. It can be called with
threshold
nil
to return the threshold value without changing it.
Note: this function is implemented only in 64-bit LispWorks. It is not relevant to the Memory Management API in 32-bit implementations.