Skip to main content

GC_free_space_divisor

Static GC_free_space_divisor 

Source
pub unsafe static mut GC_free_space_divisor: GC_word
Expand description

We try to make sure that we allocate at least N / GC_free_space_divisor bytes between collections, where N is twice the number of traced bytes, plus the number of untraced bytes (i.e. bytes in the “atomic” objects), plus a rough estimate of the root set size. N approximates GC tracing work per collection. The initial value is given by GC_FREE_SPACE_DIVISOR macro. Increasing its value will use less space but more collection time. Decreasing it will appreciably decrease total collection time at the expense of space. The setter and the getter are unsynchronized, so GC_call_with_alloc_lock() (GC_call_with_reader_lock() in case of the getter) is required to avoid data race (if the value is modified after the collector is put into the multi-threaded mode). In GC v7.1 and before, the setter returned the old value.