Skip to content

Latest commit

 

History

History
43 lines (33 loc) · 1.81 KB

collectors.md

File metadata and controls

43 lines (33 loc) · 1.81 KB

Whippet collectors

Whippet has four collectors currently:

How to choose?

If you are migrating an embedder off BDW-GC, then it could be reasonable to first go to bdw, then stack-conservative-parallel-mmc.

If you have an embedder with precise roots, use pcc. That will shake out mutator/embedder bugs. Then if memory is tight, switch to parallel-mmc, possibly parallel-generational-mmc.

If you are aiming for maximum simplicity and minimal code size (ten kilobytes or so), use semi.

If you are writing a new project, you have a choice as to whether to pay the development cost of precise roots or not. If you choose to not have precise roots, then go for stack-conservative-parallel-mmc directly.

More collectors

It would be nice to have a generational GC that uses the space from parallel-mmc for the old generation but a pcc-style copying nursery. We have generational-pcc now, so this should be possible.

Support for concurrent marking in mmc would be good as well, perhaps with a SATB barrier. (Or, if you are the sort of person to bet on conservative stack scanning, perhaps a retreating-wavefront barrier would be more appropriate.)

Contributions are welcome, provided they have no more dependencies!