Comparing "Hello World" Performance

I was curious and tested a "Hello World!" app with Paste, Fapws3, CherryPy, WSGIRef and the brand new Tornado adapter.

1
2
3
4
@bottle.route('/')
def index():
    return 'Hello World'
bottle.run(server=...)

Some of you will now say "These tests are not representative. Real apps are much more complex." and you are right. This benchmark will not tell you how fast your real app can go, but it can tell you how much overhead you get with each of the available server adapters.

I used ApacheBench on an old single core AMD3000+ over a GBit network connection. Each server adapter was tested with 10000 requests and the "concurrent request" settings (-c) set to 1, 10, 100 and 1000. Here are the results:

This chart shows simultaneous connections (x-axis) and mean requests per sec (y-axis)

As you can see, fapws3 performs great! But to be fair: fapws3 is the only tested server implemented in C. Tornado is the fastest pure python server in this test.

Edit this page at GitHub
Posted on Saturday, 19 December 2009 by defnull. Comments are not implemented.