Always use most latest versions for benchmarks
2012-01-25In my previous post Modern framework comparison I presented performance tests, which compared Ruby On Rails, Django and Symfony2. After recieving a feedback in comments I decided to run this benchmark one more time on my own laptop (instead of on my hosting). The reason was simple: enviroment was outdated. I installed mod_python and configured it easily and struggled about one day with phussion passenger (AKA mod_rails) with ruby 1.9, but finally everything works. The results is compared in table below.
Benchmark parameters (Apache ab): concurency 15, time 60 seconds.
Framework | Environment | Requests per second[#/sec] (mean) | Time per request[ms] (mean) |
---|---|---|---|
Symfony2 (source) | Apache2, mod_php, PHP 5.3.6 | 7.43 | 134.582 |
Ruby On Rails (source) | Apache2, mod_passenger, Ruby 1.9.2 | 16.16 | 61.876 |
Django (source) | Apache2, mod_python, Python 2.7.2 | 13.47 | 74.217 |
After setting all those environments on my own system I can compare one more thing: availibility of newest versions in default Ubuntu repository and easy to install. Buttoning everything up tooks a few minutes. Newest versions are available in repo, everything is fine documented. Ruby on Rails have some inconveniences (such ruby 1.8 as main version in Ubuntu repository), but after many tries it worked smoothly.
The results show, that Symfony2 is slowest one in this comparison and RoR and Django are about 2x faster.
Disclaimer: you should never choose framework based on benchmarks. Those shows them from one point of view, but there are plenty of other aspects, such as support, community, maturity, number of ready to use components.