=begin
= GC design

See attached image.

== Heap data structure

  • ObjectSpace can contains several heaps (now, has only `eden')
  • A Heap contains pagse.
  • A Page contains slots.
  • A Slot represents Ruby's object. This is also known as RVALUE.

== GC strategy

=== Conservertive GC

See http://en.wikipedia.org/wiki/Garbage_collection_%28computer_science%29#Precise_vs._conservative_and_internal_pointers

=== RGenGC

  • This is a type of generational.
  • Can combine with pre-tenuring.

=== Marking technique

  • Non-recursive marking
  • Bitmap marking

=== Sweeping technique

  • Lazy sweeping

=end

data-heap_structure.png (146 KB) Koichi Sasada, 10/18/2013 03:26 PM

data-heap_structure_with_multiple_heaps.png (105 KB) Koichi Sasada, 10/22/2013 07:27 PM