44
55## Python versions
66
7- Run at: Mon 01 Dec 2025, 16:46
8- Environment: AMD Ryzen 7 5700X @ Gentoo Linux 6.12.58 (CPUs: 16)
9- Granian version: 2.6.0
7+ Run at: Tue 07 Apr 2026, 12:00
8+ Environment: AMD Ryzen 7 5700X @ Gentoo Linux 6.12.77 (CPUs: 16)
9+ Granian version: 2.7.3
1010
1111Comparison between different Python versions of Granian application protocols using 4bytes plain text response.
1212Bytes and string response are reported for every protocol just to report the difference with RSGI protocol.
@@ -15,48 +15,48 @@ The "echo" request is a 4bytes POST request responding with the same body.
1515
1616| Python version | Request | Total requests | RPS | avg latency | max latency |
1717| --- | --- | --- | --- | --- | --- |
18- | 3.10 | RSGI get 1KB (c128) | 1467536 | 146707 | 0.868ms | 57.537ms |
19- | 3.10 | RSGI echo 1KB (c128) | 1257144 | 125681 | 1.014ms | 61.425ms |
20- | 3.10 | RSGI echo 100KB (iter) (c64) | 169777 | 16981 | 3.759ms | 40.27ms |
21- | 3.10 | ASGI get 1KB (c128) | 1294779 | 129445 | 0.984ms | 55.363ms |
22- | 3.10 | ASGI echo 1KB (c128) | 880548 | 88040 | 1.449ms | 46.504ms |
23- | 3.10 | ASGI echo 100KB (iter) (c64) | 196847 | 19686 | 3.242ms | 41.974ms |
24- | 3.10 | WSGI get 1KB (c64) | 1503623 | 150290 | 0.423ms | 49.54ms |
25- | 3.10 | WSGI echo 1KB (c64) | 1369586 | 136907 | 0.465ms | 38.576ms |
26- | 3.10 | WSGI echo 100KB (iter) (c64) | 101077 | 10111 | 6.315ms | 45.374ms |
27- | 3.11 | RSGI get 1KB (c128) | 1458213 | 145771 | 0.872ms | 103.029ms |
28- | 3.11 | RSGI echo 1KB (c128) | 1275784 | 127539 | 0.998ms | 74.297ms |
29- | 3.11 | RSGI echo 100KB (iter) (c64) | 166624 | 16663 | 3.833ms | 29.209ms |
30- | 3.11 | ASGI get 1KB (c128) | 1375259 | 137494 | 0.927ms | 61.955ms |
31- | 3.11 | ASGI echo 1KB (c128) | 934553 | 93437 | 1.364ms | 55.98ms |
32- | 3.11 | ASGI echo 100KB (iter) (c64) | 196397 | 19641 | 3.25ms | 41.786ms |
33- | 3.11 | WSGI get 1KB (c64) | 1473182 | 147273 | 0.433ms | 26.616ms |
34- | 3.11 | WSGI echo 1KB (c64) | 1380607 | 138008 | 0.462ms | 28.359ms |
35- | 3.11 | WSGI echo 100KB (iter) (c64) | 105149 | 10518 | 6.062ms | 71.718ms |
36- | 3.12 | RSGI get 1KB (c128) | 1459399 | 145891 | 0.873ms | 64.057ms |
37- | 3.12 | RSGI echo 1KB (c128) | 1278308 | 127795 | 0.997ms | 54.248ms |
38- | 3.12 | RSGI echo 100KB (iter) (c64) | 178453 | 17847 | 3.577ms | 41.065ms |
39- | 3.12 | ASGI get 1KB (c128) | 1372929 | 137265 | 0.927ms | 88.186ms |
40- | 3.12 | ASGI echo 1KB (c128) | 919891 | 91970 | 1.386ms | 57.104ms |
41- | 3.12 | ASGI echo 100KB (iter) (c64) | 194982 | 19500 | 3.275ms | 28.367ms |
42- | 3.12 | WSGI get 1KB (c64) | 1492775 | 149223 | 0.427ms | 44.059ms |
43- | 3.12 | WSGI echo 1KB (c64) | 1366811 | 136635 | 0.466ms | 49.445ms |
44- | 3.12 | WSGI echo 100KB (iter) (c64) | 103796 | 10383 | 6.154ms | 30.083ms |
45- | 3.13 | RSGI get 1KB (c128) | 1462854 | 146253 | 0.871ms | 66.615ms |
46- | 3.13 | RSGI echo 1KB (c128) | 1183206 | 118290 | 1.078ms | 42.013ms |
47- | 3.13 | RSGI echo 100KB (iter) (c64) | 175782 | 17580 | 3.631ms | 41.018ms |
48- | 3.13 | ASGI get 1KB (c128) | 1221253 | 122088 | 1.044ms | 61.669ms |
49- | 3.13 | ASGI echo 1KB (c128) | 782970 | 78283 | 1.629ms | 67.885ms |
50- | 3.13 | ASGI echo 100KB (iter) (c64) | 194463 | 19448 | 3.283ms | 37.874ms |
51- | 3.13 | WSGI get 1KB (c64) | 1458416 | 145783 | 0.437ms | 38.773ms |
52- | 3.13 | WSGI echo 1KB (c64) | 1334167 | 133370 | 0.478ms | 23.01ms |
53- | 3.13 | WSGI echo 100KB (iter) (c64) | 93275 | 9332 | 6.848ms | 32.232ms |
54- | 3.14 | RSGI get 1KB (c128) | 1463689 | 146319 | 0.872ms | 43.673ms |
55- | 3.14 | RSGI echo 1KB (c128) | 1281713 | 128132 | 0.994ms | 59.593ms |
56- | 3.14 | RSGI echo 100KB (iter) (c64) | 171280 | 17131 | 3.729ms | 27.763ms |
57- | 3.14 | ASGI get 1KB (c128) | 1409591 | 140938 | 0.904ms | 64.846ms |
58- | 3.14 | ASGI echo 1KB (c128) | 977584 | 97737 | 1.304ms | 72.092ms |
59- | 3.14 | ASGI echo 100KB (iter) (c64) | 195870 | 19589 | 3.258ms | 46.308ms |
60- | 3.14 | WSGI get 1KB (c64) | 1481403 | 148095 | 0.43ms | 35.917ms |
61- | 3.14 | WSGI echo 1KB (c64) | 1343787 | 134321 | 0.474ms | 60.887ms |
62- | 3.14 | WSGI echo 100KB (iter) (c64) | 102962 | 10301 | 6.199ms | 44.088ms |
18+ | 3.10 | RSGI get 1KB (c128) | 1464724 | 146423 | 0.87ms | 63.541ms |
19+ | 3.10 | RSGI echo 1KB (c128) | 1228389 | 122802 | 1.038ms | 49.084ms |
20+ | 3.10 | RSGI echo 100KB (iter) (c64) | 174686 | 17464 | 3.649ms | 65.258ms |
21+ | 3.10 | ASGI get 1KB (c128) | 1364184 | 136396 | 0.933ms | 78.097ms |
22+ | 3.10 | ASGI echo 1KB (c128) | 928558 | 92840 | 1.374ms | 52.495ms |
23+ | 3.10 | ASGI echo 100KB (iter) (c64) | 197123 | 19714 | 3.236ms | 52.944ms |
24+ | 3.10 | WSGI get 1KB (c64) | 1465680 | 146507 | 0.434ms | 57.214ms |
25+ | 3.10 | WSGI echo 1KB (c64) | 1360769 | 136040 | 0.468ms | 28.911ms |
26+ | 3.10 | WSGI echo 100KB (iter) (c64) | 106339 | 10638 | 6.006ms | 30.753ms |
27+ | 3.11 | RSGI get 1KB (c128) | 1426224 | 142584 | 0.894ms | 57.258ms |
28+ | 3.11 | RSGI echo 1KB (c128) | 1269281 | 126888 | 1.003ms | 89.544ms |
29+ | 3.11 | RSGI echo 100KB (iter) (c64) | 173959 | 17399 | 3.669ms | 41.42ms |
30+ | 3.11 | ASGI get 1KB (c128) | 1429886 | 142960 | 0.891ms | 70.234ms |
31+ | 3.11 | ASGI echo 1KB (c128) | 986254 | 98607 | 1.292ms | 73.36ms |
32+ | 3.11 | ASGI echo 100KB (iter) (c64) | 193492 | 19350 | 3.3ms | 34.341ms |
33+ | 3.11 | WSGI get 1KB (c64) | 1478767 | 147843 | 0.431ms | 37.916ms |
34+ | 3.11 | WSGI echo 1KB (c64) | 1366978 | 136658 | 0.466ms | 40.976ms |
35+ | 3.11 | WSGI echo 100KB (iter) (c64) | 110278 | 11031 | 5.786ms | 52.689ms |
36+ | 3.12 | RSGI get 1KB (c128) | 1411805 | 141137 | 0.903ms | 45.232ms |
37+ | 3.12 | RSGI echo 1KB (c128) | 1239244 | 123888 | 1.028ms | 72.854ms |
38+ | 3.12 | RSGI echo 100KB (iter) (c64) | 170113 | 17012 | 3.755ms | 27.976ms |
39+ | 3.12 | ASGI get 1KB (c128) | 1393781 | 139337 | 0.915ms | 50.526ms |
40+ | 3.12 | ASGI echo 1KB (c128) | 987359 | 98717 | 1.293ms | 45.948ms |
41+ | 3.12 | ASGI echo 100KB (iter) (c64) | 200682 | 20071 | 3.181ms | 33.625ms |
42+ | 3.12 | WSGI get 1KB (c64) | 1412022 | 141148 | 0.451ms | 42.767ms |
43+ | 3.12 | WSGI echo 1KB (c64) | 1351869 | 135146 | 0.471ms | 46.938ms |
44+ | 3.12 | WSGI echo 100KB (iter) (c64) | 109533 | 10957 | 5.824ms | 56.481ms |
45+ | 3.13 | RSGI get 1KB (c128) | 1429798 | 142955 | 0.892ms | 48.694ms |
46+ | 3.13 | RSGI echo 1KB (c128) | 1247500 | 124727 | 1.022ms | 64.238ms |
47+ | 3.13 | RSGI echo 100KB (iter) (c64) | 172660 | 17267 | 3.695ms | 48.772ms |
48+ | 3.13 | ASGI get 1KB (c128) | 1393855 | 139355 | 0.913ms | 90.504ms |
49+ | 3.13 | ASGI echo 1KB (c128) | 1004056 | 100386 | 1.27ms | 61.491ms |
50+ | 3.13 | ASGI echo 100KB (iter) (c64) | 189581 | 18960 | 3.367ms | 42.057ms |
51+ | 3.13 | WSGI get 1KB (c64) | 1473358 | 147280 | 0.432ms | 52.608ms |
52+ | 3.13 | WSGI echo 1KB (c64) | 1351223 | 135073 | 0.471ms | 53.595ms |
53+ | 3.13 | WSGI echo 100KB (iter) (c64) | 109441 | 10948 | 5.826ms | 62.867ms |
54+ | 3.14 | RSGI get 1KB (c128) | 1476074 | 147569 | 0.864ms | 62.446ms |
55+ | 3.14 | RSGI echo 1KB (c128) | 1231548 | 123123 | 1.032ms | 97.947ms |
56+ | 3.14 | RSGI echo 100KB (iter) (c64) | 173432 | 17344 | 3.681ms | 37.39ms |
57+ | 3.14 | ASGI get 1KB (c128) | 1439442 | 143922 | 0.886ms | 64.139ms |
58+ | 3.14 | ASGI echo 1KB (c128) | 1009738 | 100956 | 1.263ms | 57.633ms |
59+ | 3.14 | ASGI echo 100KB (iter) (c64) | 198846 | 19886 | 3.209ms | 48.322ms |
60+ | 3.14 | WSGI get 1KB (c64) | 1471359 | 147071 | 0.433ms | 54.568ms |
61+ | 3.14 | WSGI echo 1KB (c64) | 1365044 | 136453 | 0.466ms | 48.155ms |
62+ | 3.14 | WSGI echo 100KB (iter) (c64) | 109161 | 10920 | 5.85ms | 34.431ms |
0 commit comments