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 total | c2 total | c1 r/s | c2 r/s | c1 ms/r | c2 ms/r | c1/c2 |
---|---|---|---|---|---|---|---|
empty | 0.94709 | 1.05049 | 1055.9 | 951.9 | 0.95 | 1.05 | 0.90 |
welcome | 1.22878 | 1.34536 | 813.8 | 743.3 | 1.23 | 1.35 | 0.91 |
recipes | 1.37214 | 1.50364 | 728.8 | 665.1 | 1.37 | 1.50 | 0.91 |
my_recipes | 1.36958 | 1.49912 | 730.2 | 667.1 | 1.37 | 1.50 | 0.91 |
show | 3.46944 | 4.27918 | 288.2 | 233.7 | 3.47 | 4.28 | 0.81 |
cat | 3.72675 | 4.58788 | 268.3 | 218.0 | 3.73 | 4.59 | 0.81 |
cat_page5 | 3.85624 | 4.68700 | 259.3 | 213.4 | 3.86 | 4.69 | 0.82 |
letter | 3.69970 | 4.54140 | 270.3 | 220.2 | 3.70 | 4.54 | 0.81 |
all requests | 19.66971 | 23.49406 | 406.7 | 340.5 | 2.46 | 2.94 | 0.84 |
GC statistics | c1 total | c2 total | c1 #gc | c2 #gc | c1 gc% | c2 #gc% | c1/c2 |
2.27657 | 3.09640 | 21.0 | 25.0 | 11.57 | 13.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.