IronRuby Roundup – IronRuby 0.9.0 and Benchmarks
The community around the IronRuby project is appearing busier as of late as the team moves the project toward a 1.0 release. The team has released version 0.9.0 and Antonio Cangiano has released some encouraging benchmarks for IronRuby.
InfoQ covered the news coming from the team which paved a roadmap to IronRuby 1.0. Jimmy Schementi announced recently that IronRuby 0.9.0 was available for download, fulfilling the promise of having 0.9.0 ready and including many improvements:
Library performance was a big focus for this release; basically going though the Ruby Benchmark suite and making sure any obvious slowness was fixed. As I said in my previous post about OSCON, IronRuby is approximately 2x faster than MRI when running the benchmark suite, but in the near future a complete evaluation of IronRuby’s performance will be done and published on the website.
Antonio Cangiano followed up quickly with some benchmarks comparing IronRuby 0.9.0, Ruby 1.8.6 and Ruby 1.9.1 with some interesting results which shows IronRuby has improved its performance in many areas:
IronRuby went from being much slower than Ruby MRI to considerably faster across nearly all the tests. That’s major progress for sure, and the team behind the project deserves mad props for it.
Reviewing the tests shows some of the data needs to be clarified:
One final warning before we get too excited here. IronRuby is not faster than Ruby 1.9.1 at this stage. Don’t let that first chart mislead you. While it’s faster in certain tests, it’s also slower is many others. Currently, it’s situated between Ruby 1.8.6 and Ruby 1.9.1, but much closer to the latter. The reason why this chart is misleading is that it doesn’t take into account any tests that timed out, and several of such timeouts were caused by IronRuby (more than those caused by Ruby 1.9.1). If you were to add, say, 300 seconds to the total, for each timeout for the two implementations, you’d quickly see that Ruby 1.9.1 still has the edge. The second chart that compares macro-benchmarks does a better job at realistically showing how IronRuby sits between Ruby 1.8.6 and Ruby 1.9.1 from a performance standpoint. If you were to plot every single benchmark on a chart, you’d find a similar outcomes for a large percentage of the tests.
The performance and progress of IronRuby look very encouraging. Please see the complete set of benchmarks on Antonio’s web site.