JSON serializer/deserializer adapted for use with Google App Engine’s NDB Datastore API. This script can handle Model, Expando, PolyModel, Query, QueryIterator, Key, datetime, struct_time, and complex types.
Using ab as below, with simple echo “Hello World” on 1.86GHz, 4 Go ram ubuntu saucy linux server.
ab -n 10000 -c 200 http://localhost/
py2.7tornado 741 req/s
uwsgi 1172 req/s
tornado+uwsgi 1221.19 req/s
apache-modwsgi-scriptalias 2226.71 req/s
nginx+uwsgi 2330.29 req/s
openresty 3481.70 req/s
apache+mod_php+php5 1515.54 req/s
nginx+php-fpm 2173.90 req/s
vert.x 492.78 req/s
node (v0.10) 1054.92 req/s
python+fapws3 1158.33 req/s
A note, this bench just explain how those servers (not the languages) handle concurrent requests on a low-entry hosting. It does not compare features or languages. But I note the very impressive performance from openresty, and I must say that openresty provide a full Web+static+SSL+Websocket server with a very simple installation.
I’m quite suprised by vert.x performance since I saw in different posts that it was a high performance framework. Clearly my setup lack of optimization.
Right now Nuitka is a good replacement for the Python interpreter and compiles every construct that CPython 2.6, 2.7, 3.2 and 3.3 offer. It translates the Python into a C++ program that then uses “libpython” to execute in the same way as CPython does, in a very compatible way.
It is somewhat faster than CPython already, but currently it doesn’t make all the optimizations possible, but a 258% factor on pystone is a good start (number is from version 0.3.11).