Ruby Weekly is a weekly newsletter covering the latest Ruby and Rails news.

How Phusion Built A More Efficient Ruby 1.8 Interpreter

By Peter Cooper / December 16, 2009

ninh-bui.pngPhusion Passenger and Ruby Enterprise Edition developers Ninh "Hernandez" Bui and Hongli Lai travelled to San Francisco last week and gave a 35 minute Google Tech Talk called Building A More Efficient Ruby Interpreter.

The talk focused on how the guys (with some help from other sources, including Joe Damato and Aman Gupta) have dug into MRI Ruby 1.8's internals to get some significant memory usage and thread performance improvements for their Ruby Enterprise Edition branch (they're not calling it a fork) of Ruby 1.8.

The video is presented in HD so the slides are easy to see and the audio is solid. If taking a small trip through Ruby's garbage collection, memory allocation, and threading system sounds good to you (or you just want to know what Ruby Enterprise Edition is all about), it's a must watch. If you want some practical Ruby stuff and don't care about what the interpreter's doing, give it a miss.

jslab.png[ad] Jumpstart Lab is offering private and corporate training in Ruby and Rails. Not just great programmers, they're experienced educators available worldwide. CC-Licensed tutorials including "Ruby in 100 Minutes" available at


  1. aliekens says:

    Why is there a picture of Patrick Hernandez with Ninh's name on top of this article?

  2. Peter Cooper says:

    It's a long running in-joke with the Phusion guys and Laurent. Sansonetti (and now me, in a way).

  3. andhapp says:

    Thanks. I have been going through thir copy-on-write series on their site. This should be amazing.

  4. Ryan Bates says:

    Awesome talk! You guys did a great job at explaining complex low-level topics in a simple way.

    One question, how does the Ruby 1.9 garbage collection compare to Ruby Enterprise Edition? Have the problems you mentioned here been fixed in 1.9?

  5. Mike Moore says:

    This is a really great presentation. My team watched it today for our lunch training and really enjoyed it. I think its a great introduction to how the Ruby interpreter works.

  6. Daniel Berger says:

    Great presentation!

  7. Jan Wedekind says:

    Impressive. Especially the part about changing stack pointers and having to maintain an extra stack for the interrupt vectors.

  8. none00 says:

    @ninhbui fuck yeah patrick hernandez !!

  9. Damien says:

    A bit late to comment, but that is a great talk! Very well explained. :)

  10. Chris Kleeschulte says:

    The talk felt like a pretty good peer review on the Ruby 1.8 code base. This is good. Mr. Bui and Mr. Lai made the complex inner workings of the C code very understandable. There should be many more tech talks about threads, garbage collection strategies, and memory management! These topics are quite, shall we say, mature and there is a lot of new things happening in this area that can help even the 1.9 code base.

  11. Zach Dennis says:

    Excellent presentation!

Other Posts to Enjoy

Twitter Mentions