Ruby Enterprise Edition 1.8.7 Released – Lower Memory Usage, Increased Speed
Today Phusion has announced the release of Ruby Enterprise Edition (REE) 1.8.7 (more specifically, 1.8.7-20090928). Once considered a bit of a joke, given the name, REE has proven itself to be anything but, with significant memory usage and speed improvements over the stock "MRI" Ruby implementation (achieved by way of patches to the MRI code). The key development with this release is compatibility with Ruby 1.8.7, rather than the 1.8.6 of previous versions.
While REE has shown itself to be a good performer compared to the unpatched MRI implementation before, this week Evan Weaver of Twitter revealed how a release candidate version of REE 1.8.7 has resulted in a significant throughput increase on the same codebase. He also noted that Ruby is faster when compiled with optimization for size rather than speed due to the benefits of being able to fit more of Ruby into the CPU's cache. REE 1.8.7 is optimized for size by default, so you get the same improvements out of the box. For information on other optimizations and changes from MRI, Phusion's release post has more details.
Installing REE is pretty easy (instructions here) but the latest version of RVM (Ruby Version Manager) already has support for it if you want to seamlessly run multiple versions of Ruby.
Disclaimer: The REE "logo" shown above is not official and was designed by Ahmad Galal. It's CC 3.0 licensed.
[ad] Jumpstart Lab is offering Rails Jumpstart, an introduction to Ruby on Rails, on 10/31-11/1 in Washington, DC. Save $30 with code "rubyrow"!
September 30, 2009 at 2:29 pm
"While REE has shown itself to be a good performer compared to MRI before (..)"
I understand that REE is in fact MRI, with patches, so this sentence can be confusing. MRI with good, nice, precious set of patches ;). Waiting to upgrade!
September 30, 2009 at 3:49 pm
Good call - I've added a few words to help clarify this.
October 2, 2009 at 9:06 pm
Gotta hand it to the Phusion guys, but I have to ask: With all the performance benefits of REE, why haven't these patches found their way into MRI yet? Why do we have an MRI and an REE, if REE is essentially just MRI++?
October 2, 2009 at 11:49 pm
Maybe because most efforts now go into 1.9.X line, and not 1.8? Seems likely to me.
October 3, 2009 at 12:31 am
I might be talking out my ass but.. I seem to recall reading that they're looking into doing the same stuff for 1.9 and that the core team are interested in their patches for this. I should ask them for more info on this though - could be a good story!
October 3, 2009 at 3:04 pm
the MBARI patches have been submitted to the 1.8.x trunk, but haven't been accepted yet ["low resources" the core guys say]. Hopefully they will sometime :)