"Do these results have any real world value?"

Probably not. When it comes to code, the slightest adjustments have the
potential to change things drastically. While I have tried to perform each test
as fairly and accurately as possible, it would be foolish to consider these
results as scientific in any way. It should also be noted that my goal here was
not necessarily to figure out how fast each framework could perform at its most
optimized configuration (although built-in caching and other performance tweaks
were usually enabled if the default configuration permitted it), but rather to
see what a minimal "out-of-the-box" experience would look like.

Additionally, nothing here is intended to make one web technology appear
"better" than another. When it comes to using the right tool for the job,
"faster" does not necessarily mean "better" (very few real world projects are
going to depend solely on page request speeds).

"Will you please add XYZ to the results?"

Maybe, if you can convince me that enough people would be interested in having
it displayed next to heavyweights like Rails and Django. Fork the repository
and submit a pull request under the dev branch with a test app in the same
format as the other tests, and make sure you include your best sales pitch.
Otherwise, I'd suggest you boot up the EC2 AMI and do your own benchmarking.

Benchmark Results

Three basic tests were set up for each framework to run. Below are the results
of each test in requests per second from highest (best performance) to lowest
(worst performance).

Remember: Comparing all of these framework tests side-by-side isn't really
"fair" because they are all so different. Compiled languages (e.g. Go) are
expected to be faster than scripted languages. Tests using an ORM (e.g. Rails,
Django, Pyramid, etc.) are expected to be slower than tests using only a plain
database library (e.g. Bottle, Flask, Sinatra, etc).

Please see the website for more detailed information and a better breakdown
of the tests (graphs included!).

The "Hello World" String Test

This test simply spits out a string response. There's no template or DB calls
involved, so the level of processing should be minimal.

The "Hello World" Template Test With DB Query

This test loads 5 rows of Lorem Ipsum from a SQLite DB (via the default ORM or
a sqlite3 driver) and then prints them out through a template (thus engaging
both the framework’s ORM/DB driver and the templating system).

Framework

Reqs/sec

Bottle 0.9.6

1562

Flask 0.7.2

1191

Sinatra 1.2.6

982

web.go (Go r59)

741

Pyramid 1.2

555

CodeIgniter 2.0.3

542

Django 1.3.1

465

Rails 3.1

463

Kohana 3.2.0

423

TG 2.1.2

298

Yii 1.1.8

201

CakePHP 1.3.11

193

Symfony 2.0.1

113

Test Platform Setup

All tests were performed on Amazon's EC2 with the following configuration: