Project

General

Profile

Feature #8339

Introducing Geneartional Garbage Collection for CRuby/MRI

Added by ko1 (Koichi Sasada) over 7 years ago. Updated about 7 years ago.

Status:
Closed
Priority:
Normal
Target version:
[ruby-core:54621]

Description

| One day a Rubyist came to Koichi and said, "I understand how to improve
| CRuby's performance. We must use a generational garbage collector." Koichi
| patiently told the Rubyist the following story: "One day a Rubyist came
| to Koichi and said, 'I understand how to improve CRuby's performance..."
| [This story is an homage of an introduction in a paper:
| "A real-time garbage collector based on the lifetimes of objects"
| (by Henry Lieberman, Carl Hewitt)
| http://dl.acm.org/citation.cfm?id=358147&CFID=321285546&CFTOKEN=10963356]

We Heroku Matz team developed a new generational mark&sweep garbage
collection algorithm RGenGC for CRuby/MRI.
(correctly speaking, it is generational marking algorithm)

What goods are:

  • Reduce marking time (yay!)
  • My algorithm doesn't introduce any incompatibility into normal C-exts.
  • Easy to development

Please read more details in attached PDF file.
Code is: https://github.com/ko1/ruby/tree/rgengc

How about to introduce this new GC algorithm/implementation into Ruby 2.1.0?

Thanks,
Koichi


Files

gc-strategy-en.pdf (717 KB) gc-strategy-en.pdf ko1 (Koichi Sasada), 04/28/2013 03:19 AM

Related issues

Related to Ruby master - Bug #8399: Remove usage of RARRAY_PTR in C extensions when not neededClosed05/13/2013Actions

Also available in: Atom PDF