So, after my last post, several of us have spent time looking at different parts of Rails and JRuby performance. We have managed to improve things quite nicely since my last performance note. Some of the things changed have been JRuby’s each_line implementation, JRuby’s split implementation, a few other improvements, and some small fixes to AR-JDBC. After that, here are some new numbers for Petstore. Remember, the MRI numbers are for MRI 1.8.6 with native C MySQL. The JRuby numbers is with ActiveRecord-JDBC trunk and MySQL. (I’m only showing the best numbers of each). The number in bold is the most important one for comparison.
MRI controller : 1.000000 0.070000 1.070000 ( 1.430260)
JRuby controller : 1.804000 0.000000 1.804000 ( 1.804000)
MRI view : 4.410000 0.150000 4.560000 ( 4.575399)
JRuby view : 5.510000 0.000000 5.510000 ( 5.510000)
MRI full action: 8.260000 0.410000 8.670000 ( 9.574460)
JRuby full action: 13.876000 0.000000 13.876000 ( 13.876000)
As you can see, we are talking about 9.5s MRI to 13.8s for JRuby, which I find is a quite nice achievement if you look at the numbers from Friday. We are inching closer and closer. Both the view and the controller numbers are looking very nice. This is actually indicative of a nice trend – since general JRuby primitive performance is really good, the slowness in our Regular Expression engine is weighed up by much faster execution speed.
Once the port of Oniguruma lands, this story will almost certainly look very different. But even so, this is looking good.
3 Comments, Comment or Ping
Nice Site !
Your full guide to earn money online
October 16th, 2007
There are some more numbers about JRuby here
Those are not performance, but code metrics. Could be interesting for you!
Mark
October 16th, 2007
For everyone like myself that didn’t know what Oniguruma was:
http://en.wikipedia.org/wiki/Oniguruma
October 16th, 2007
Reply to “Updated JRuby on Rails performance numbers”