How Phusion Built A More Efficient Ruby 1.8 Interpreter
Phusion 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.
[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 JumpstartLab.com
December 16, 2009 at 12:13 pm
Why is there a picture of Patrick Hernandez with Ninh's name on top of this article?
December 16, 2009 at 12:50 pm
It's a long running in-joke with the Phusion guys and Laurent. Sansonetti (and now me, in a way).
December 16, 2009 at 3:22 pm
Thanks. I have been going through thir copy-on-write series on their site. This should be amazing.
December 17, 2009 at 4:12 pm
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?
December 18, 2009 at 5:14 am
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.
December 18, 2009 at 4:26 pm
Great presentation!
December 19, 2009 at 12:05 am
Impressive. Especially the part about changing stack pointers and having to maintain an extra stack for the interrupt vectors.
December 21, 2009 at 12:55 pm
@ninhbui fuck yeah patrick hernandez !!
December 21, 2009 at 8:47 pm
A bit late to comment, but that is a great talk! Very well explained. :)
January 3, 2010 at 10:26 pm
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.
January 6, 2010 at 10:17 pm
Excellent presentation!