Python - rychlost asynchroního kódu

Asynchroní zpracování vstupně-výstupních operací je poslední roky velký trend. Python od verze 3.4 obsahuje novou knihovnu asyncio a v nedávno vydané verzi 3.5 přibyla i podpora pro klíčová slova async a await, které můžete znát třeba z C#. V tomto článku bych se rád podíval na rychlost asynchroního kódu v Pythonu a srovnal ho s konkurencí (Go, Erlang, Node.JS).

Každého zajímají hlavně výsledky, tady jsou:

Ve všech případech jsem testoval jednoduchý HTTP server, který vrací pouze "Hello world!". Zdrojáky všech testů jsou dostupné na githubu. Z testů jsem vyřadil cython, nuitku a pypy3, protože nevykazovaly žádné převratné výsledky ve srovnání s pypy i pythonem.

Co můžeme vyčíst z výsledků:

UPDATE

Do testu bylo přidáno několik nových kandidátů - Japronto, Meinheld, Sanic a kombinace uvloop+httptools. Zejména Japronto přináší velmi zajímavý výkon, přinejmenším srovnatelný s dosavadním vítězem testu Asyncore (s PyPy).

UPDATE 2

Doplněna Vibora.