![]() * Changes for Python 3.11 support * Updated README.md for versioning info * Update `httpx==0.27.0` to avoid `cgi` deprecation warning from pytest on Python 3.11 * Make tests work for 3.11 * Declare support for 3.11 * Use 3.11-alpine for Docker images * Preserve pylint version for `python_version <= 3.10` * Preserve httpx version for <= 3.10 * `httpx` usage fix in tests for <=3.10 * Adjust pylint and pytest for >= 3.11 * Use 3.11.8, bad-option-value and httpx proxies fix * tox for 3.11 * Fix for `TOXENV: py` * -vv for pytest * Downgrade to `pytest-asyncio==0.21.1` * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * remove asyncio_mode=strict * try with `pytest-cov==4.1.0` for 3.11 * bump coverage for 3.11 * Try `3.11` in GitHub workflow which installs >3.11.8 unavailable via pyenv yet * Revert back to `-v` --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> |
||
---|---|---|
.. | ||
README.md | ||
_aiohttp.py | ||
_blacksheep.py | ||
_proxy.py | ||
_starlette.py | ||
_tornado.py | ||
compare.sh | ||
requirements.txt |
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