This site is dedicated to further knowledge about creating Ruby on Rails applications professionaly. We discuss Ruby on Rails features from a performance angle, discuss Ruby on Rails performance analysis methods, provide information on Ruby on Rails scaling and benchmark Ruby on Rails performance for each release. We discuss best practices for selecting Ruby on Rails session containers, fragment and page caching and optimizing database queries.

Rails Edge Performance

Posted 18 Sep 2007

Listening to David's RailsConf Europe 2007 keynote, I've learned that he's going to a release a beta version soonish. He's asked me to do some benchmarking, comparing the performance of edge Rails to the latest stable branches. Here's a chart:

stable11 is the current svn version of branch 1-1-stable, stable12 is current version of 1-2-stable branch and edge is the current version of Rails trunk. Numbers are requests per second (measured on my MacBook during David's talk).

If you're a numbers type, these are the numbers:

page c1 totalc2 total c1 r/sc2 r/s c1 ms/rc2 ms/r c1/c2
empty 0.947091.05049 1055.9951.9 0.951.05 0.90
welcome 1.228781.34536 813.8743.3 1.231.35 0.91
recipes 1.372141.50364 728.8665.1 1.371.50 0.91
my_recipes 1.369581.49912 730.2667.1 1.371.50 0.91
show 3.469444.27918 288.2233.7 3.474.28 0.81
cat 3.726754.58788 268.3218.0 3.734.59 0.81
cat_page5 3.856244.68700 259.3213.4 3.864.69 0.82
letter 3.699704.54140 270.3220.2 3.704.54 0.81
all requests 19.6697123.49406 406.7340.5 2.462.94 0.84
GC statistics c1 totalc2 total c1 #gcc2 #gc c1 gc%c2 #gc% c1/c2
2.276573.09640 21.025.0 11.5713.18 0.74

c1: 1.2-stable, c2: edge, r/s: requests per second, ms/r: milliseconds per request

I haven't had time to analyze the code, but it seems that anything loading a large number of active record objects takes a rather large performance hit.

I hope we can improve performance before 2.0 gets finally released. Unfortunately, I have almost no time to work on this. However, if anyone has a performance patch, I can look into the it.

Posted in performance | Tags performance


blog comments powered by Disqus