https://github.com/chillfish8/benchmark-proxypy
https://github.com/chillfish8/benchmark-proxypy
Last synced: 3 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/chillfish8/benchmark-proxypy
- Owner: ChillFish8
- Created: 2021-11-30T10:18:54.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2021-11-30T10:19:04.000Z (over 3 years ago)
- Last Synced: 2025-02-01T14:32:14.354Z (5 months ago)
- Language: Python
- Size: 1.95 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# How I ran these.
They're run exactly as they are in the file with [oha](https://github.com/hatoo/oha)
however, proxy.py was run with the following CLI args because the script didn't work
(which was copied from the benchmark repo :/)```
python3 -m proxy --hostname 127.0.0.1 --port 8000 --backlog 65536 --open-file-limit 65536 --enable-web-server --plugin proxy.plugin.WebServerPlugin --disable-http-proxy --log-file /dev/null
```Some reasons why there is such a difference compared to the claim:
- We actually use multiple workers here making it a fair comparison
- Uvicorn and HTTPTools improve Uvicorn's performance several times over.NOTE: proxy.py had accessed to the exact same system e.g. it has uvloop available
and httptools if the system supported it.Extra Note: Proxy.py used 16 workers, the others used 10. So I'd like to empathise just how much
faster uvicorn is.# Results
TL;DR no, proxy.py is not faster.Starlette
```
chillfish8@JACKAL:~/projects/personal/benchmark-proxypy$ oha --no-tui --latency-correction --insecure -c 100 -n 1000000 http://127.0.0.1:8000/http-route-example
Summary:
Success rate: 1.0000
Total: 11.5783 secs
Slowest: 0.0205 secs
Fastest: 0.0001 secs
Average: 0.0012 secs
Requests/sec: 86368.5823Total data: 12.40 MiB
Size/request: 13 B
Size/sec: 1.07 MiBResponse time histogram:
0.000 [153146] |■■■■■■■■■■■■■■■■■■■■■■■■
0.001 [163275] |■■■■■■■■■■■■■■■■■■■■■■■■■■
0.001 [105835] |■■■■■■■■■■■■■■■■■
0.001 [135535] |■■■■■■■■■■■■■■■■■■■■■■
0.002 [196099] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
0.002 [142069] |■■■■■■■■■■■■■■■■■■■■■■■
0.002 [68043] |■■■■■■■■■■■
0.002 [26161] |■■■■
0.003 [6303] |■
0.003 [1998] |
0.003 [1536] |Latency distribution:
10% in 0.0003 secs
25% in 0.0006 secs
50% in 0.0012 secs
75% in 0.0016 secs
90% in 0.0019 secs
95% in 0.0022 secs
99% in 0.0025 secsDetails (average, fastest, slowest):
DNS+dialup: 0.0003 secs, 0.0001 secs, 0.0007 secs
DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0000 secsStatus code distribution:
[200] 1000000 responses
```Blacksheep
```
chillfish8@JACKAL:~/projects/personal/benchmark-proxypy$ oha --no-tui --latency-correction --insecure -c 100 -n 1000000 http://127.0.0.1:8000/http-route-example
Summary:
Success rate: 1.0000
Total: 11.1912 secs
Slowest: 0.0205 secs
Fastest: 0.0001 secs
Average: 0.0011 secs
Requests/sec: 89356.1285Total data: 18.12 MiB
Size/request: 19 B
Size/sec: 1.62 MiBResponse time histogram:
0.000 [152990] |■■■■■■■■■■■■■■■■■■
0.001 [174269] |■■■■■■■■■■■■■■■■■■■■
0.001 [34454] |■■■■
0.001 [153187] |■■■■■■■■■■■■■■■■■■
0.001 [270771] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
0.002 [141670] |■■■■■■■■■■■■■■■■
0.002 [51767] |■■■■■■
0.002 [13697] |■
0.003 [4182] |
0.003 [1494] |
0.003 [1519] |Latency distribution:
10% in 0.0003 secs
25% in 0.0005 secs
50% in 0.0013 secs
75% in 0.0015 secs
90% in 0.0018 secs
95% in 0.0020 secs
99% in 0.0024 secsDetails (average, fastest, slowest):
DNS+dialup: 0.0007 secs, 0.0001 secs, 0.0028 secs
DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0004 secsStatus code distribution:
[200] 1000000 responses
```Proxy.py
```
chillfish8@JACKAL:~/projects/personal/benchmark-proxypy$ oha --no-tui --latency-correction --insecure -c 100 -n 1000000 http://127.0.0.1:8000/http-route-example
Summary:
Success rate: 1.0000
Total: 27.3925 secs
Slowest: 0.1770 secs
Fastest: 0.0001 secs
Average: 0.0027 secs
Requests/sec: 36506.3870Total data: 18.12 MiB
Size/request: 19 B
Size/sec: 677.36 KiBResponse time histogram:
0.001 [235031] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
0.001 [209800] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■
0.002 [149930] |■■■■■■■■■■■■■■■■■■■■
0.003 [104897] |■■■■■■■■■■■■■■
0.004 [74442] |■■■■■■■■■■
0.004 [53129] |■■■■■■■
0.005 [39441] |■■■■■
0.006 [29939] |■■■■
0.007 [22934] |■■■
0.007 [17483] |■■
0.008 [62974] |■■■■■■■■Latency distribution:
10% in 0.0005 secs
25% in 0.0009 secs
50% in 0.0018 secs
75% in 0.0035 secs
90% in 0.0061 secs
95% in 0.0082 secs
99% in 0.0133 secsDetails (average, fastest, slowest):
DNS+dialup: 0.0003 secs, 0.0001 secs, 0.0004 secs
DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0000 secsStatus code distribution:
[200] 1000000 responses
```