![]() * Handle `SIGINFO`. Try `kill -s INFO <pid>`. Also remove dirty hack added in flags to incorporate `--basic-auth` flag. Add `__pycache__` to ignore list. Disable http proxy during acceptor benchmark. * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * not on windows * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * no cover * # pylint: disable=E1101 * Curl retry on error and check_output 2 minute timeout * check output timeout None * Update `faulthandler_timeout` to 2 minutes * Disable `test_circular_imports`, `isort` integration now works * Fix curl flags * Revert back to older flags * SIGINFO attribute might not even exist 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