pull/39/head
Ciro 2022-11-10 08:42:24 -03:00
rodzic 24d9d950b2
commit 8e4b1a4562
1 zmienionych plików z 5 dodań i 9 usunięć

Wyświetl plik

@ -47,17 +47,13 @@ Cython performs really well on Python3 but really bad on PyPy3, CFFI are choosen
## Benchmarks
HTTP requests per second (Linux x64)
| framework | req/s | runtime |
| ------------- | -------------: | :-------------: |
| socketify.py | 124,943 | PyPy3 |
| socketify.py | 70,877 | Python3 |
| uvicorn | 30,173 | Python3 |
| uvicorn | 17,580 | PyPy3 |
![image](https://raw.githubusercontent.com/cirospaciari/socketify.py/main/misc/bench-bar-graph.svg)
Runtime versions: PyPy3 7.3.9 and Python 3.10.7<br/>
Framework versions: gunicorn 20.1.0 + uvicorn 0.19.0, socketify alpha<br/>
Tested with ./http_load_test 40 127.0.0.1 8000 from [uSockets](https://github.com/uNetworking/uSockets)
Source code in [bench](https://github.com/cirospaciari/socketify.py/tree/main/bench)
Framework versions: gunicorn 20.1.0 + uvicorn 0.19.0, socketify alpha, gunicorn 20.1.0 + falcon 3.1.0<br/>
Tested with oha -c 40 -z 5s http://localhost:8000/ (1 run for warmup and 3 runs average for testing)<br/>
Source code in [bench](https://github.com/cirospaciari/socketify.py/tree/main/bench)<br/>
> Today socketify have about 30% performance hit due to workarounds between asyncio + libuv, so we will got even faster! See more info in [this issue](https://github.com/cirospaciari/socketify.py/issues/18), in PyPy3 we can get about 186,760 req/s and 77,774 req/s in Python3 without these workarounds and almost double of the scores with PyPy3 in TechEmPower plaintext, Python3 and PyPy3 performance will improve when we migrate to [HPy](https://github.com/cirospaciari/socketify.py/issues/16). In TechEmPower benchmarks we are faster than japronto in plaintext (about 1,300k req/s using PyPy3 without workaround and about 770k req/s with the current state vs 582k from japronto you can follow details in [this discussion](https://github.com/cirospaciari/socketify.py/discussions/10)
## Install