|ext:gc &key verbose gen full||[Function]|
Initiates a garbage collection of all generations below the given generation gen and moves all referenced objects in younger generations into generation gen. If the generation gen has reached its allocation trigger level and its object age trigger level then garbage in this generation will also be collected. Garbage collection of older generations may also occur if their allocation and age trigger levels are reached. If the gen is the keyword :full, or if the keyword argument :full is true then garbage is collected in all available generations. The keyword argument :verbose controls whether or not GC statistics are printed and defaults to the value of the variable ext:*gc-verbose*.
The function ext:gc-promote quickly moves objects into an older generation without collecting garbage and may be appropriate when it is known that most of the objects are referenced and will remain after garbage collection.
Garbage is automatically collected when allocation trigger levels and object age trigger levels are reached. See ext:bytes-consed-between-gcs, ext:generation-bytes-consed-between-gcs, and ext:generation-minimum-age-before-gc. All the objects in a generation are automatically promoted to the next older generation after garbage collection has occurred a specified number of times on the generation, see: ext:generation-gcs-before-promotion.
A number of mechanisms are available to inhibit garbage collection, see: ext:generation-gc-size-limit, ext:generation-gcs-before-promotion, ext:generation-expected-survival-rate, and ext:oldest-generation-to-gc.