diff options
| author | fleuria <[email protected]> | 2013-07-23 17:00:55 +0800 |
|---|---|---|
| committer | fleuria <[email protected]> | 2013-07-23 17:04:54 +0800 |
| commit | 9bce2eb8b399a27ffdd0073606ca3cb14268348f (patch) | |
| tree | 88d20671244457ce5a9d9e55688d5b950da2adee | |
| parent | 29a3f8b8e3826551daedbc4802a12ae2411a0351 (diff) | |
| download | mruby-9bce2eb8b399a27ffdd0073606ca3cb14268348f.tar.gz mruby-9bce2eb8b399a27ffdd0073606ca3cb14268348f.zip | |
gc: add comments for Generational Mode
| -rw-r--r-- | src/gc.c | 16 |
1 files changed, 15 insertions, 1 deletions
@@ -66,7 +66,7 @@ For details, see the comments for each function. - = Write Barrier + == Write Barrier mruby implementer, C extension library writer must write a write barrier when writing a pointer to an object on object's field. @@ -75,6 +75,20 @@ * mrb_field_write_barrier * mrb_write_barrier + == Generational Mode + + mruby's GC offers an Generational Mode while re-using the tri-color GC + infrastructure. It will treat the Black objects as Old objects after each + sweep phase, instead of paint them to White. The key idea are still same as + the traditional generational GC: + + * Minor GC - just traverse the Young objects (Gray objects) in the mark + phase, then only sweep the newly created objects, and leave + the Old objects live. + + * Major GC - same as a full round of regular GC. + + For details, see the comments for each function. */ |
