Skip to content

Asynchronous networking benchmarks for upcoming PyPy release

Notifications You must be signed in to change notification settings

joshw/zenchmarks

 
 

Repository files navigation

Asynchronous HTTP libraries benchmark for upcoming PyPy release

For the accompanying blog post please see https://morepypy.blogspot.com.br/2017/03/async-http-benchmarks-on-pypy3.html

Prerequisites

A working Linux x86_64 distribution, preferably Ubuntu if you don't wanna build PyPy preview yourself. CPython 3.5 installed and PyPy build from 3.5 nightly. Everything else is vendored in the repository.

Results

Graphs

Table

Reproducing

The repository contains scripts to start the servers and run wrk several times against them. Each script will print a couple of dots while it's working and display a line with results in RPS separated by commas at the end.

If you prefer running wrk manually you should do so with:

vendor/wrk http://localhost:8080 -t 1 -c 100 -s zenhttp.lua

The exact commands are given below:


pypy_nightly=~/pypy-c-jit-90326-88ef793308eb-linux64/bin/pypy3
python3 -m perfkit python zenhttp_aiohttp.py wrk --script zenhttp.lua --repeat 10
python3 -m perfkit python --binary "$pypy_nightly" zenhttp_aiohttp.py wrk --script zenhttp.lua --repeat 10

python3 -m perfkit python zenhttp_curio_h11.py wrk --script zenhttp.lua --repeat 10
python3 -m perfkit python --binary "$pypy_nightly" zenhttp_curio_h11.py wrk --script zenhttp.lua --repeat 10

python3 -m perfkit python zenhttp_gevent.py wrk --script zenhttp.lua --repeat 10
python3 -m perfkit python --binary "$pypy_nightly" zenhttp_gevent.py wrk --script zenhttp.lua --repeat 10

python3 -m perfkit python zenhttp_tornado.py wrk --script zenhttp.lua --repeat 10
python3 -m perfkit python --binary "$pypy_nightly" zenhttp_tornado.py wrk --script zenhttp.lua --repeat 10

python3 -m perfkit python zenhttp_klein.py wrk --script zenhttp.lua --repeat 10
python3 -m perfkit python --binary "$pypy_nightly" wrk --script zenhttp.lua --repeat 10

About

Asynchronous networking benchmarks for upcoming PyPy release

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 85.5%
  • C 11.5%
  • Lua 3.0%