This document summarizes Narihiro Nakamura's presentation on symbol garbage collection in Ruby. It describes the problem that symbols are currently uncollectable in Ruby and outlines an idea to make symbols collectable by differentiating between immortal symbols and mortal symbols. Immortal symbols would refer to symbols used in the C layer like method names, while mortal symbols like those generated from strings would be collectable. The implementation would involve separating symbols into static immortal symbols and dynamic mortal symbols (or immortal symbols) to allow mortal symbols to be garbage collected unless referenced from the C layer.
I will talk about some improvements of GC in Ruby 2.0.0. For instance, I will introduce about implementations of Bitmap Marking GC and so on, and show results of benchmarks after these are implemented.
Animation version is here: https://gumroad.com/l/xWCR (premium version)
The document discusses parallelizing garbage collection (GC) in CRuby. Currently, CRuby's GC runs on a single core even in multi-core environments. Parallelizing GC would improve performance by utilizing multiple cores. The current GC algorithm uses mark-and-sweep, marking live objects reachable from roots in the mark phase and sweeping unmarked "dead" objects in the sweep phase. Parallelizing the marking phase could improve performance by distributing the work across multiple cores.
The document discusses parallelizing garbage collection (GC) in CRuby. It describes the current single-threaded GC approach and argues for a parallel marking GC to utilize multiple CPU cores. Key points covered include explaining GC concepts like dead objects and roots, an overview of CRuby's mark-and-sweep algorithm, and the motivation to parallelize marking to improve performance. The author has implemented several GC techniques for CRuby through "RubyKaigi Driven Development" including Lazy Sweep GC and a proposed Parallel Marking GC.
The document discusses the history and features of garbage collection (GC) in Ruby. It notes that while GC has gotten a bad reputation for being slow or causing errors, it has actually been improved over time thanks to contributions from pioneering computer scientists. The document urges readers to see GC as an opportunity to strengthen their skills rather than a scapegoat for performance issues.