11# RLoop benchmarks
22
3- Run at: Thu 17 Apr 2025, 17:17
3+ Run at: Mon 26 May 2025, 18:42
44Environment: GHA Linux x86_64 (CPUs: 4)
55Python version: 3.13
6- RLoop version: 0.1.1
6+ RLoop version: 0.1.2
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 | 15729.6 (81.6 %) | 13852.6 (79.0 %) | 9692.1 (83.2 %) |
16- | rloop | 19272.9 (100.0%) | 17539.4 (100.0%) | 11652.4 (100.0%) |
17- | uvloop | 16181.9 (84.0 %) | 14564.8 (83.0 %) | 9903.4 (85.0 %) |
15+ | asyncio | 14362.1 (79.5 %) | 14279.9 (90.7 %) | 10020.0 (109.8 %) |
16+ | rloop | 18059.6 (100.0%) | 15735.7 (100.0%) | 9128.7 (100.0%) |
17+ | uvloop | 15982.0 (88.5 %) | 15114.6 (96.1 %) | 10431.2 (114.3 %) |
1818
1919
2020#### 1KB details
2121
2222| Loop | Total requests | Throughput | Mean latency | 99p latency | Latency stdev |
2323| --- | --- | --- | --- | --- | --- |
24- | asyncio | 157296 | 15729.6 (81.6 %) | 0.061ms | 0.101ms | 0.014 |
25- | rloop | 192729 | 19272.9 (100.0%) | 0.052ms | 0.08ms | 0.008 |
26- | uvloop | 161819 | 16181.9 (84.0 %) | 0.06ms | 0.099ms | 0.013 |
24+ | asyncio | 143621 | 14362.1 (79.5 %) | 0.067ms | 0.104ms | 0.012 |
25+ | rloop | 180596 | 18059.6 (100.0%) | 0.054ms | 0.083ms | 0.01 |
26+ | uvloop | 159820 | 15982.0 (88.5 %) | 0.06ms | 0.097ms | 0.013 |
2727
2828
2929#### 10KB details
3030
3131| Loop | Total requests | Throughput | Mean latency | 99p latency | Latency stdev |
3232| --- | --- | --- | --- | --- | --- |
33- | asyncio | 138526 | 13852.6 (79.0 %) | 0.07ms | 0.109ms | 0.013 |
34- | rloop | 175394 | 17539.4 (100.0%) | 0.054ms | 0.086ms | 0.009 |
35- | uvloop | 145648 | 14564.8 (83.0 %) | 0.066ms | 0.103ms | 0.012 |
33+ | asyncio | 142799 | 14279.9 (90.7 %) | 0.067ms | 0.108ms | 0.013 |
34+ | rloop | 157357 | 15735.7 (100.0%) | 0.061ms | 0.098ms | 0.012 |
35+ | uvloop | 151146 | 15114.6 (96.1 %) | 0.065ms | 0.101ms | 0.014 |
3636
3737
3838#### 100KB details
3939
4040| Loop | Total requests | Throughput | Mean latency | 99p latency | Latency stdev |
4141| --- | --- | --- | --- | --- | --- |
42- | asyncio | 96921 | 9692.1 (83.2 %) | 0.099ms | 0.145ms | 0.015 |
43- | rloop | 116524 | 11652.4 (100.0%) | 0.085ms | 0.126ms | 0.011 |
44- | uvloop | 99034 | 9903.4 (85.0 %) | 0.1ms | 0.177ms | 0.023 |
42+ | asyncio | 100200 | 10020.0 (109.8 %) | 0.098ms | 0.142ms | 0.013 |
43+ | rloop | 91287 | 9128.7 (100.0%) | 0.108ms | 0.229ms | 0.03 |
44+ | uvloop | 104312 | 10431.2 (114.3 %) | 0.093ms | 0.163ms | 0.018 |
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 | 14531.2 (87.3 %) | 13677.9 (90.5 %) | 5972.8 (82.4 %) |
55- | rloop | 16643.7 (100.0%) | 15116.7 (100.0%) | 7251.9 (100.0%) |
56- | uvloop | 15230.3 (91.5 %) | 13067.2 (86.4 %) | 7185.7 (99.1 %) |
54+ | asyncio | 14640.4 (88.8 %) | 13088.7 (84.3 %) | 6129.7 (82.7 %) |
55+ | rloop | 16480.6 (100.0%) | 15521.0 (100.0%) | 7408.6 (100.0%) |
56+ | uvloop | 15448.0 (93.7 %) | 13617.3 (87.7 %) | 7096.9 (95.8 %) |
5757
5858
5959#### 1KB details
6060
6161| Loop | Total requests | Throughput | Mean latency | 99p latency | Latency stdev |
6262| --- | --- | --- | --- | --- | --- |
63- | asyncio | 145312 | 14531.2 (87.3 %) | 0.066ms | 0.099ms | 0.01 |
64- | rloop | 166437 | 16643.7 (100.0%) | 0.057ms | 0.087ms | 0.01 |
65- | uvloop | 152303 | 15230.3 (91.5 %) | 0.065ms | 0.093ms | 0.01 |
63+ | asyncio | 146404 | 14640.4 (88.8 %) | 0.067ms | 0.098ms | 0.01 |
64+ | rloop | 164806 | 16480.6 (100.0%) | 0.059ms | 0.087ms | 0.01 |
65+ | uvloop | 154480 | 15448.0 (93.7 %) | 0.062ms | 0.091ms | 0.011 |
6666
6767
6868#### 10KB details
6969
7070| Loop | Total requests | Throughput | Mean latency | 99p latency | Latency stdev |
7171| --- | --- | --- | --- | --- | --- |
72- | asyncio | 136779 | 13677.9 (90.5 %) | 0.071ms | 0.102ms | 0.011 |
73- | rloop | 151167 | 15116.7 (100.0%) | 0.065ms | 0.093ms | 0.01 |
74- | uvloop | 130672 | 13067.2 (86.4 %) | 0.072ms | 0.105ms | 0.013 |
72+ | asyncio | 130887 | 13088.7 (84.3 %) | 0.073ms | 0.106ms | 0.013 |
73+ | rloop | 155210 | 15521.0 (100.0%) | 0.062ms | 0.091ms | 0.011 |
74+ | uvloop | 136173 | 13617.3 (87.7 %) | 0.07ms | 0.101ms | 0.011 |
7575
7676
7777#### 100KB details
7878
7979| Loop | Total requests | Throughput | Mean latency | 99p latency | Latency stdev |
8080| --- | --- | --- | --- | --- | --- |
81- | asyncio | 59728 | 5972.8 (82.4 %) | 0.164ms | 0.23ms | 0.034 |
82- | rloop | 72519 | 7251.9 (100.0%) | 0.136ms | 0.197ms | 0.025 |
83- | uvloop | 71857 | 7185.7 (99.1 %) | 0.137ms | 0.198ms | 0.025 |
81+ | asyncio | 61297 | 6129.7 (82.7 %) | 0.16ms | 0.228ms | 0.035 |
82+ | rloop | 74086 | 7408.6 (100.0%) | 0.132ms | 0.189ms | 0.025 |
83+ | uvloop | 70969 | 7096.9 (95.8 %) | 0.137ms | 0.199ms | 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 | 19217.5 (90.3 %) | 16426.5 (84.3 %) | 12014 .6 (94.9 %) |
94- | rloop | 21274.4 (100.0%) | 19495.2 (100.0%) | 12659.6 (100.0%) |
95- | uvloop | 20171.2 (94.8 %) | 17920 .6 (91.9 %) | 12295.2 (97.1 %) |
93+ | asyncio | 17969.2 (82.9 %) | 17152.6 (89.5 %) | 12183 .6 (102.3 %) |
94+ | rloop | 21680.6 (100.0%) | 19159.4 (100.0%) | 11904.4 (100.0%) |
95+ | uvloop | 20472.7 (94.4 %) | 18104 .6 (94.5 %) | 12347.8 (103.7 %) |
9696
9797
9898#### 1KB details
9999
100100| Loop | Total requests | Throughput | Mean latency | 99p latency | Latency stdev |
101101| --- | --- | --- | --- | --- | --- |
102- | asyncio | 192175 | 19217.5 (90.3 %) | 0.052ms | 0.077ms | 0.006 |
103- | rloop | 212744 | 21274.4 (100.0%) | 0.044ms | 0.068ms | 0.006 |
104- | uvloop | 201712 | 20171.2 (94.8 %) | 0.047ms | 0.07ms | 0.01 |
102+ | asyncio | 179692 | 17969.2 (82.9 %) | 0.054ms | 0.08ms | 0.01 |
103+ | rloop | 216806 | 21680.6 (100.0%) | 0.044ms | 0.068ms | 0.006 |
104+ | uvloop | 204727 | 20472.7 (94.4 %) | 0.046ms | 0.07ms | 0.011 |
105105
106106
107107#### 10KB details
108108
109109| Loop | Total requests | Throughput | Mean latency | 99p latency | Latency stdev |
110110| --- | --- | --- | --- | --- | --- |
111- | asyncio | 164265 | 16426.5 (84.3 %) | 0.059ms | 0.086ms | 0.011 |
112- | rloop | 194952 | 19495.2 (100.0%) | 0.05ms | 0.07ms | 0.008 |
113- | uvloop | 179206 | 17920 .6 (91.9 %) | 0.054ms | 0.079ms | 0.007 |
111+ | asyncio | 171526 | 17152.6 (89.5 %) | 0.056ms | 0.081ms | 0.009 |
112+ | rloop | 191594 | 19159.4 (100.0%) | 0.051ms | 0.07ms | 0.008 |
113+ | uvloop | 181046 | 18104 .6 (94.5 %) | 0.054ms | 0.079ms | 0.007 |
114114
115115
116116#### 100KB details
117117
118118| Loop | Total requests | Throughput | Mean latency | 99p latency | Latency stdev |
119119| --- | --- | --- | --- | --- | --- |
120- | asyncio | 120146 | 12014 .6 (94.9 %) | 0.083ms | 0.114ms | 0.008 |
121- | rloop | 126596 | 12659.6 (100.0%) | 0.075ms | 0.107ms | 0.009 |
122- | uvloop | 122952 | 12295.2 (97.1 %) | 0.077ms | 0.112ms | 0.011 |
120+ | asyncio | 121836 | 12183 .6 (102.3 %) | 0.079ms | 0.113ms | 0.011 |
121+ | rloop | 119044 | 11904.4 (100.0%) | 0.082ms | 0.109ms | 0.007 |
122+ | uvloop | 123478 | 12347.8 (103.7 %) | 0.077ms | 0.11ms | 0.01 |
123123
124124
125125### Other benchmarks
0 commit comments