Fresh New Ruby Implementation Benchmarks: So Who’s Fastest?
Almost a year ago, Antonio Cangiano performed some benchmarks on the then present Ruby implementations: Ruby 1.8.5, YARV (now Ruby 1.9), JRuby, Ruby.NET, Rubinius and Cardinal. The results were that YARV, although nowhere near ready for production use, was streets ahead of Ruby 1.8, and the other implementations raised enough errors to still be considered 'experimental'.
Now Antonio has rerun the tests on Ruby 1.8.6, Ruby 1.9 (from trunk), JRuby (from trunk), Rubinius (from trunk) and XRuby 0.3.2. Ruby 1.9 again takes the lead by quite a margin, but the best development is that instead of being a distant third (behind Ruby 1.8), JRuby has made significant improvements and is smack bang in between Ruby 1.8 and Ruby 1.9 in terms of performance (while offering, of course, the benefits of the Java ecosystem). JRuby now also passes all of the tests without error, a feat that even Ruby 1.9 doesn't yet achieve. The Rubinius team hasn't been slacking either. On the previous test, Rubinius was coming in miles behind the other implementations, but is now quicker than the stock Ruby 1.8.6 interpreter on a wide selection of the tests.
Antonio's post is blog pornography for those of us who are into benchmarks, comparisons, and graphs, so just go soak it all up now.