1
1
# RLoop benchmarks
2
2
3
- Run at: Mon 26 May 2025, 18:42
3
+ Run at: Tue 12 Aug 2025, 13:06
4
4
Environment: GHA Linux x86_64 (CPUs: 4)
5
5
Python version: 3.13
6
- RLoop version: 0.1.2
6
+ RLoop version: 0.1.5
7
7
8
8
### Raw sockets
9
9
@@ -12,36 +12,36 @@ TCP echo server with raw sockets comparison using 1KB, 10KB and 100KB messages.
12
12
13
13
| Loop | Throughput (1KB) | Throughput (10KB) | Throughput (100KB) |
14
14
| --- | --- | --- | --- |
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%) |
15
+ | asyncio | 14139.9 (83.8 %) | 13542.7 (84 .7%) | 9885.4 (137.3 %) |
16
+ | rloop | 16865.0 (100.0%) | 15981.5 (100.0%) | 7200.1 (100.0%) |
17
+ | uvloop | 15950 .0 (94.6 %) | 14635.9 (91.6 %) | 9886.7 (137 .3%) |
18
18
19
19
20
20
#### 1KB details
21
21
22
22
| Loop | Total requests | Throughput | Mean latency | 99p latency | Latency stdev |
23
23
| --- | --- | --- | --- | --- | --- |
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 |
24
+ | asyncio | 141399 | 14139.9 (83.8 %) | 0.068ms | 0.111ms | 0.016 |
25
+ | rloop | 168650 | 16865.0 (100.0%) | 0.057ms | 0.089ms | 0.012 |
26
+ | uvloop | 159500 | 15950 .0 (94.6 %) | 0.06ms | 0.1ms | 0.014 |
27
27
28
28
29
29
#### 10KB details
30
30
31
31
| Loop | Total requests | Throughput | Mean latency | 99p latency | Latency stdev |
32
32
| --- | --- | --- | --- | --- | --- |
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 |
33
+ | asyncio | 135427 | 13542.7 (84 .7%) | 0.071ms | 0.114ms | 0.015 |
34
+ | rloop | 159815 | 15981.5 (100.0%) | 0.059ms | 0.093ms | 0.011 |
35
+ | uvloop | 146359 | 14635.9 (91.6 %) | 0.067ms | 0.108ms | 0.014 |
36
36
37
37
38
38
#### 100KB details
39
39
40
40
| Loop | Total requests | Throughput | Mean latency | 99p latency | Latency stdev |
41
41
| --- | --- | --- | --- | --- | --- |
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 |
42
+ | asyncio | 98854 | 9885.4 (137.3 %) | 0.099ms | 0.144ms | 0.014 |
43
+ | rloop | 72001 | 7200.1 (100.0%) | 0.136ms | 0.294ms | 0.033 |
44
+ | uvloop | 98867 | 9886.7 (137 .3%) | 0.097ms | 0.159ms | 0.019 |
45
45
46
46
47
47
### Streams
@@ -51,36 +51,36 @@ TCP echo server with `asyncio` streams comparison using 1KB, 10KB and 100KB mess
51
51
52
52
| Loop | Throughput (1KB) | Throughput (10KB) | Throughput (100KB) |
53
53
| --- | --- | --- | --- |
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 %) |
54
+ | asyncio | 14303.6 (89.5 %) | 12526.1 (85 .3%) | 5851.4 (80.3 %) |
55
+ | rloop | 15988.5 (100.0%) | 14691.7 (100.0%) | 7286.5 (100.0%) |
56
+ | uvloop | 15342.7 (96.0 %) | 13402.4 (91.2 %) | 7307.8 (100.3 %) |
57
57
58
58
59
59
#### 1KB details
60
60
61
61
| Loop | Total requests | Throughput | Mean latency | 99p latency | Latency stdev |
62
62
| --- | --- | --- | --- | --- | --- |
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 |
63
+ | asyncio | 143036 | 14303.6 (89.5 %) | 0.067ms | 0.1ms | 0.011 |
64
+ | rloop | 159885 | 15988.5 (100.0%) | 0.059ms | 0.091ms | 0.011 |
65
+ | uvloop | 153427 | 15342.7 (96.0 %) | 0.065ms | 0.094ms | 0.009 |
66
66
67
67
68
68
#### 10KB details
69
69
70
70
| Loop | Total requests | Throughput | Mean latency | 99p latency | Latency stdev |
71
71
| --- | --- | --- | --- | --- | --- |
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 |
72
+ | asyncio | 125261 | 12526.1 (85 .3%) | 0.077ms | 0.109ms | 0.013 |
73
+ | rloop | 146917 | 14691.7 (100.0%) | 0.066ms | 0.095ms | 0.01 |
74
+ | uvloop | 134024 | 13402.4 (91.2 %) | 0.07ms | 0.103ms | 0.012 |
75
75
76
76
77
77
#### 100KB details
78
78
79
79
| Loop | Total requests | Throughput | Mean latency | 99p latency | Latency stdev |
80
80
| --- | --- | --- | --- | --- | --- |
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 |
81
+ | asyncio | 58514 | 5851.4 (80.3 %) | 0.167ms | 0.239ms | 0.037 |
82
+ | rloop | 72865 | 7286.5 (100.0%) | 0.135ms | 0.202ms | 0.028 |
83
+ | uvloop | 73078 | 7307.8 (100.3 %) | 0.135ms | 0.199ms | 0.025 |
84
84
85
85
86
86
### Protocol
@@ -90,36 +90,36 @@ TCP echo server with `asyncio.Protocol` comparison using 1KB, 10KB and 100KB mes
90
90
91
91
| Loop | Throughput (1KB) | Throughput (10KB) | Throughput (100KB) |
92
92
| --- | --- | --- | --- |
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 %) |
93
+ | asyncio | 18289.1 (88.3 %) | 15803.4 (82.3 %) | 11687.4 (94.6 %) |
94
+ | rloop | 20709.3 (100.0%) | 19197.7 (100.0%) | 12359.0 (100.0%) |
95
+ | uvloop | 20394 .7 (98.5 %) | 18134.7 (94.5%) | 12183.2 (98.6 %) |
96
96
97
97
98
98
#### 1KB details
99
99
100
100
| Loop | Total requests | Throughput | Mean latency | 99p latency | Latency stdev |
101
101
| --- | --- | --- | --- | --- | --- |
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 |
102
+ | asyncio | 182891 | 18289.1 (88.3 %) | 0.053ms | 0.079ms | 0.007 |
103
+ | rloop | 207093 | 20709.3 (100.0%) | 0.045ms | 0.069ms | 0.007 |
104
+ | uvloop | 203947 | 20394 .7 (98.5 %) | 0.046ms | 0.07ms | 0.01 |
105
105
106
106
107
107
#### 10KB details
108
108
109
109
| Loop | Total requests | Throughput | Mean latency | 99p latency | Latency stdev |
110
110
| --- | --- | --- | --- | --- | --- |
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 |
111
+ | asyncio | 158034 | 15803.4 (82.3 %) | 0.06ms | 0.089ms | 0.011 |
112
+ | rloop | 191977 | 19197.7 (100.0%) | 0.05ms | 0.071ms | 0.008 |
113
+ | uvloop | 181347 | 18134.7 (94.5%) | 0.054ms | 0.079ms | 0.007 |
114
114
115
115
116
116
#### 100KB details
117
117
118
118
| Loop | Total requests | Throughput | Mean latency | 99p latency | Latency stdev |
119
119
| --- | --- | --- | --- | --- | --- |
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 |
120
+ | asyncio | 116874 | 11687.4 (94.6 %) | 0.085ms | 0.12ms | 0.01 |
121
+ | rloop | 123590 | 12359.0 (100.0%) | 0.077ms | 0.109ms | 0.01 |
122
+ | uvloop | 121832 | 12183.2 (98.6 %) | 0.077ms | 0.114ms | 0.012 |
123
123
124
124
125
125
### Other benchmarks
0 commit comments