11# RLoop benchmarks
22
3- Run at: Thu 30 Jan 2025, 02:26
3+ Run at: Sun 23 Feb 2025, 18:38
44Environment: GHA Linux x86_64 (CPUs: 4)
55Python version: 3.13
6- RLoop version: 0.1.0a5
6+ RLoop version: 0.1.0
77
88### Raw sockets
99
@@ -12,36 +12,36 @@ TCP echo server with raw sockets comparison using 1KB, 10KB and 100KB messages.
1212
1313| Loop | Throughput (1KB) | Throughput (10KB) | Throughput (100KB) |
1414| --- | --- | --- | --- |
15- | asyncio | 14939 .9 (76.4 %) | 13355.8 (74.7 %) | 9582.8 (84.9 %) |
16- | rloop | 19545.4 (100.0%) | 17878.1 (100.0%) | 11281.3 (100.0%) |
17- | uvloop | 16288.9 (83.3 %) | 14681.7 (82.1 %) | 9937.1 (88.1 %) |
15+ | asyncio | 14766 .9 (75.6 %) | 14019.0 (78.3 %) | 9900.4 (89.2 %) |
16+ | rloop | 19544.8 (100.0%) | 17896.9 (100.0%) | 11103.9 (100.0%) |
17+ | uvloop | 16774.5 (85.8 %) | 15214.8 (85.0 %) | 9809.4 (88.3 %) |
1818
1919
2020#### 1KB details
2121
2222| Loop | Total requests | Throughput | Mean latency | 99p latency | Latency stdev |
2323| --- | --- | --- | --- | --- | --- |
24- | asyncio | 149399 | 14939 .9 (76.4 %) | 0.065ms | 0.104ms | 0.018 |
25- | rloop | 195454 | 19545.4 (100.0%) | 0.05ms | 0.08ms | 0.01 |
26- | uvloop | 162889 | 16288.9 (83.3 %) | 0.059ms | 0.099ms | 0.013 |
24+ | asyncio | 147669 | 14766 .9 (75.6 %) | 0.066ms | 0.105ms | 0.015 |
25+ | rloop | 195448 | 19544.8 (100.0%) | 0.051ms | 0.079ms | 0.007 |
26+ | uvloop | 167745 | 16774.5 (85.8 %) | 0.057ms | 0.097ms | 0.013 |
2727
2828
2929#### 10KB details
3030
3131| Loop | Total requests | Throughput | Mean latency | 99p latency | Latency stdev |
3232| --- | --- | --- | --- | --- | --- |
33- | asyncio | 133558 | 13355.8 (74.7 %) | 0.072ms | 0.112ms | 0.015 |
34- | rloop | 178781 | 17878.1 (100.0%) | 0.054ms | 0.085ms | 0.011 |
35- | uvloop | 146817 | 14681.7 (82.1 %) | 0.066ms | 0.106ms | 0.014 |
33+ | asyncio | 140190 | 14019.0 (78.3 %) | 0.069ms | 0.107ms | 0.013 |
34+ | rloop | 178969 | 17896.9 (100.0%) | 0.054ms | 0.084ms | 0.008 |
35+ | uvloop | 152148 | 15214.8 (85.0 %) | 0.064ms | 0.1ms | 0.011 |
3636
3737
3838#### 100KB details
3939
4040| Loop | Total requests | Throughput | Mean latency | 99p latency | Latency stdev |
4141| --- | --- | --- | --- | --- | --- |
42- | asyncio | 95828 | 9582.8 (84.9 %) | 0.1ms | 0.146ms | 0.015 |
43- | rloop | 112813 | 11281.3 (100.0%) | 0.086ms | 0.138ms | 0.016 |
44- | uvloop | 99371 | 9937.1 (88.1 %) | 0.1ms | 0.179ms | 0.022 |
42+ | asyncio | 99004 | 9900.4 (89.2 %) | 0.098ms | 0.142ms | 0.013 |
43+ | rloop | 111039 | 11103.9 (100.0%) | 0.089ms | 0.139ms | 0.015 |
44+ | uvloop | 98094 | 9809.4 (88.3 %) | 0.101ms | 0.18ms | 0.023 |
4545
4646
4747### Streams
@@ -51,36 +51,36 @@ TCP echo server with `asyncio` streams comparison using 1KB, 10KB and 100KB mess
5151
5252| Loop | Throughput (1KB) | Throughput (10KB) | Throughput (100KB) |
5353| --- | --- | --- | --- |
54- | asyncio | 14260.8 (84.1 %) | 13196.9 (86.0 %) | 6065.4 (81.4 %) |
55- | rloop | 16964.3 (100.0%) | 15342.9 (100.0%) | 7454.6 (100.0%) |
56- | uvloop | 15013.2 (88.5 %) | 14103.9 (91.9 %) | 7192.7 (96 .5%) |
54+ | asyncio | 14647.2 (86.2 %) | 14095.1 (95.8 %) | 5838.0 (86.0 %) |
55+ | rloop | 16997.0 (100.0%) | 14719.7 (100.0%) | 6792.0 (100.0%) |
56+ | uvloop | 14942.0 (87.9 %) | 13877.3 (94.3 %) | 7234.0 (106 .5%) |
5757
5858
5959#### 1KB details
6060
6161| Loop | Total requests | Throughput | Mean latency | 99p latency | Latency stdev |
6262| --- | --- | --- | --- | --- | --- |
63- | asyncio | 142608 | 14260.8 (84.1 %) | 0.068ms | 0.104ms | 0.013 |
64- | rloop | 169643 | 16964.3 (100.0%) | 0.057ms | 0.088ms | 0.012 |
65- | uvloop | 150132 | 15013.2 (88.5 %) | 0.065ms | 0.096ms | 0.012 |
63+ | asyncio | 146472 | 14647.2 (86.2 %) | 0.066ms | 0.099ms | 0.01 |
64+ | rloop | 169970 | 16997.0 (100.0%) | 0.056ms | 0.085ms | 0.01 |
65+ | uvloop | 149420 | 14942.0 (87.9 %) | 0.066ms | 0.096ms | 0.012 |
6666
6767
6868#### 10KB details
6969
7070| Loop | Total requests | Throughput | Mean latency | 99p latency | Latency stdev |
7171| --- | --- | --- | --- | --- | --- |
72- | asyncio | 131969 | 13196.9 (86.0 %) | 0.073ms | 0.108ms | 0.015 |
73- | rloop | 153429 | 15342.9 (100.0%) | 0.064ms | 0.094ms | 0.011 |
74- | uvloop | 141039 | 14103.9 (91.9 %) | 0.067ms | 0.101ms | 0.011 |
72+ | asyncio | 140951 | 14095.1 (95.8 %) | 0.069ms | 0.1ms | 0.01 |
73+ | rloop | 147197 | 14719.7 (100.0%) | 0.066ms | 0.095ms | 0.011 |
74+ | uvloop | 138773 | 13877.3 (94.3 %) | 0.068ms | 0.102ms | 0.011 |
7575
7676
7777#### 100KB details
7878
7979| Loop | Total requests | Throughput | Mean latency | 99p latency | Latency stdev |
8080| --- | --- | --- | --- | --- | --- |
81- | asyncio | 60654 | 6065.4 (81.4 %) | 0.162ms | 0.229ms | 0.038 |
82- | rloop | 74546 | 7454.6 (100.0%) | 0.132ms | 0.189ms | 0.025 |
83- | uvloop | 71927 | 7192.7 (96 .5%) | 0.137ms | 0.201ms | 0.026 |
81+ | asyncio | 58380 | 5838.0 (86.0 %) | 0.168ms | 0.239ms | 0.034 |
82+ | rloop | 67920 | 6792.0 (100.0%) | 0.144ms | 0.204ms | 0.029 |
83+ | uvloop | 72340 | 7234.0 (106 .5%) | 0.136ms | 0.198ms | 0.025 |
8484
8585
8686### Protocol
@@ -90,36 +90,36 @@ TCP echo server with `asyncio.Protocol` comparison using 1KB, 10KB and 100KB mes
9090
9191| Loop | Throughput (1KB) | Throughput (10KB) | Throughput (100KB) |
9292| --- | --- | --- | --- |
93- | asyncio | 19004 .8 (90.8 %) | 17040.5 (88.1 %) | 12155.0 (97.8 %) |
94- | rloop | 20925.4 (100.0%) | 19350.4 (100.0%) | 12431.8 (100.0%) |
95- | uvloop | 19758.3 (94.4 %) | 18294.1 (94.5 %) | 12462.8 (100.2 %) |
93+ | asyncio | 18327 .8 (84.4 %) | 16887.7 (86.5 %) | 11971.9 (96.3 %) |
94+ | rloop | 21702.7 (100.0%) | 19526.7 (100.0%) | 12429.2 (100.0%) |
95+ | uvloop | 20257.7 (93.3 %) | 17878.8 (91.6 %) | 11769.1 (94.7 %) |
9696
9797
9898#### 1KB details
9999
100100| Loop | Total requests | Throughput | Mean latency | 99p latency | Latency stdev |
101101| --- | --- | --- | --- | --- | --- |
102- | asyncio | 190048 | 19004 .8 (90.8 %) | 0.052ms | 0.079ms | 0.009 |
103- | rloop | 209254 | 20925.4 (100.0%) | 0.045ms | 0.069ms | 0.01 |
104- | uvloop | 197583 | 19758.3 (94.4 %) | 0.048ms | 0.074ms | 0.01 |
102+ | asyncio | 183278 | 18327 .8 (84.4 %) | 0.053ms | 0.08ms | 0.008 |
103+ | rloop | 217027 | 21702.7 (100.0%) | 0.044ms | 0.068ms | 0.006 |
104+ | uvloop | 202577 | 20257.7 (93.3 %) | 0.047ms | 0.071ms | 0.009 |
105105
106106
107107#### 10KB details
108108
109109| Loop | Total requests | Throughput | Mean latency | 99p latency | Latency stdev |
110110| --- | --- | --- | --- | --- | --- |
111- | asyncio | 170405 | 17040.5 (88.1 %) | 0.057ms | 0.086ms | 0.011 |
112- | rloop | 193504 | 19350.4 (100.0%) | 0.05ms | 0.073ms | 0.008 |
113- | uvloop | 182941 | 18294.1 (94.5 %) | 0.053ms | 0.079ms | 0.009 |
111+ | asyncio | 168877 | 16887.7 (86.5 %) | 0.057ms | 0.084ms | 0.01 |
112+ | rloop | 195267 | 19526.7 (100.0%) | 0.05ms | 0.071ms | 0.008 |
113+ | uvloop | 178788 | 17878.8 (91.6 %) | 0.054ms | 0.08ms | 0.008 |
114114
115115
116116#### 100KB details
117117
118118| Loop | Total requests | Throughput | Mean latency | 99p latency | Latency stdev |
119119| --- | --- | --- | --- | --- | --- |
120- | asyncio | 121550 | 12155.0 (97.8 %) | 0.081ms | 0.113ms | 0.011 |
121- | rloop | 124318 | 12431.8 (100.0%) | 0.076ms | 0.116ms | 0.018 |
122- | uvloop | 124628 | 12462.8 (100.2 %) | 0.076ms | 0.11ms | 0.016 |
120+ | asyncio | 119719 | 11971.9 (96.3 %) | 0.084ms | 0.116ms | 0.009 |
121+ | rloop | 124292 | 12429.2 (100.0%) | 0.078ms | 0.109ms | 0.01 |
122+ | uvloop | 117691 | 11769.1 (94.7 %) | 0.083ms | 0.119ms | 0.008 |
123123
124124
125125### Other benchmarks
0 commit comments