[ruby-cvs:50530] ko1:r43388 (trunk): * gc.c: allow multiple heaps.

ko1 at ruby-lang.org ko1 at ruby-lang.org
Tue Oct 22 19:28:32 JST 2013

ko1	2013-10-22 19:28:31 +0900 (Tue, 22 Oct 2013)

  New Revision: 43388


    * gc.c: allow multiple heaps.
      Now, objects are managed by page. And a set of pages is called heap.
      This commit supports multiple heaps in the object space.
      * Functions heap_* and rb_heap_t manages heap data structure.
      * Functions heap_page_* and struct heap_page manage page data
      * Functions heap_pagse_* and struct rb_objspace_t::heap_pages
        maintains all pages.
        For example, pagaes are allocated from the heap_pages.
      See https://bugs.ruby-lang.org/projects/ruby-trunk/wiki/GC_design
      and https://bugs.ruby-lang.org/attachments/4015/data-heap_structure_with_multiple_heaps.png
      for more deitals.
      Now, there is only one heap called `eden', which is a space for all
      new generated objects.

  Modified files:

More information about the ruby-cvs mailing list