This morning I was deploying an application originally built on Rails 1.1.5 which we’ve recently ported to Rails 2.3. It’s an introductory online statistics course aimed at people who study psychology and social sciences. Most of the pages serve static content straight from the database, so we were never really concerned about performance.
After I finished deploying the application I was tailing the production logs and I noticed that the application took a lot less time completing page requests than before. Just for fun I decided to run some benchmarks on my development box.
|Rails 1.1.5||Rails 2.3.1|
|Login||47.3㎳ (σ = 24.5)||12.1㎳ (σ = 10.2)|
|Lesson index||177.6㎳ (σ = 30.4)||60.0㎳ (σ = 25.7)|
|Lesson show||66.5㎳ (σ = 36.1)||19.0㎳ (σ = 15.3)|
Benchmarks generated with Apache Bench, concurrency 5, 2k requests. Apache with Passenger 2.1.0 & MySQL 5.1.
Please don’t interpret these numbers as Rails 2.3 is three times faster, because that’s not what these numbers mean. However, when you port you application to Rails 2.3 your server load will very likely go down.