proxy.py/benchmark
Abhinav Singh 257d237b46
`task.result` can throw (#837)
* `task.result` can raise exception

* Remove redundant `except`

* Fix doc spell.  We need to fix it well, currently strategy feels dumb and PITA

* Move common words within `spelling_wordlist.txt`
2021-12-01 19:54:00 +05:30
..
aiohttp Add benchmarks comparison for `proxy.py`, `tornado`, `aiohttp`, `flask` (#827) 2021-11-29 20:20:23 +05:30
blacksheep Optimizations & Update Benchmark Results (#832) 2021-12-01 04:18:49 +05:30
starlette Optimizations & Update Benchmark Results (#832) 2021-12-01 04:18:49 +05:30
tornado Optimizations & Update Benchmark Results (#832) 2021-12-01 04:18:49 +05:30
README.md Optimizations & Update Benchmark Results (#832) 2021-12-01 04:18:49 +05:30
__init__.py Add benchmarks comparison for `proxy.py`, `tornado`, `aiohttp`, `flask` (#827) 2021-11-29 20:20:23 +05:30
compare.sh `task.result` can throw (#837) 2021-12-01 19:54:00 +05:30
requirements.txt Optimizations & Update Benchmark Results (#832) 2021-12-01 04:18:49 +05:30

README.md

Benchmark

Table of Contents

TL;DR

NOTE: On Macbook Pro 2019 / 2.4 GHz 8-Core Intel Core i9 / 32 GB RAM

Server Throughput (request/sec) Num Workers Runner
blacksheep 46,564 10 uvicorn
starlette 44,102 10 uvicorn
proxy.py 39,232 10 -
aiohttp 6,615 1 -
tornado 3,301 1 -
  • On a single core, proxy.py yields ~9449 req/sec throughput.
  • Try it using --num-acceptors=1

Usage

 git clone https://github.com/abhinavsingh/proxy.py.git
 cd proxy.py
 pip install -r benchmark/requirements.txt
 ./benchmark/compare.sh > /tmp/compare.log 2>&1

Results

 cat /tmp/compare.log