Shortly after I wrote about speeding up Python web frameworks with Cython,
Nexedi posted an article about their attempt to build
a fast multicore web server for Python
that can compete with the performance of compiled coroutines in the Go language.
Their goal is to use Cython to build a web framework around a fast native web server, and to use Cython’s concurrency and coroutine support to gain native performance also in the application code, without sacrificing the readability that Python provides.
Their experiments look very promising so far.
They managed to process 10K requests per second concurrently, which actually do real processing work.
That is worth noting, because many web server benchmarks out there content themselves with the blank response time for a “hello world”, thus ignoring any concurrency overhead etc.
For that simple static “Hello world!”, they even got 400K requests per second, which shows that this is not a very realistic benchmark.
Under load, their system seems to scale pretty linearly with the number of threads, also not a given among web frameworks.
I might personally get involved in further improving Cython for this kind of concurrent, async applications. Stay tuned.