Skip to content

Commit cde8372

Browse files
Update benchmark results (#44)
Co-authored-by: gi0baro <[email protected]>
1 parent da7870f commit cde8372

File tree

2 files changed

+64
-64
lines changed

2 files changed

+64
-64
lines changed

benchmarks/README.md

Lines changed: 38 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
# RLoop benchmarks
22

3-
Run at: Mon 26 May 2025, 18:42
3+
Run at: Tue 12 Aug 2025, 13:06
44
Environment: GHA Linux x86_64 (CPUs: 4)
55
Python version: 3.13
6-
RLoop version: 0.1.2
6+
RLoop version: 0.1.5
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 | 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%) |
1818

1919

2020
#### 1KB details
2121

2222
| Loop | Total requests | Throughput | Mean latency | 99p latency | Latency stdev |
2323
| --- | --- | --- | --- | --- | --- |
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 |
2727

2828

2929
#### 10KB details
3030

3131
| Loop | Total requests | Throughput | Mean latency | 99p latency | Latency stdev |
3232
| --- | --- | --- | --- | --- | --- |
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 |
3636

3737

3838
#### 100KB details
3939

4040
| Loop | Total requests | Throughput | Mean latency | 99p latency | Latency stdev |
4141
| --- | --- | --- | --- | --- | --- |
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 |
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 | 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%) |
5757

5858

5959
#### 1KB details
6060

6161
| Loop | Total requests | Throughput | Mean latency | 99p latency | Latency stdev |
6262
| --- | --- | --- | --- | --- | --- |
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 |
6666

6767

6868
#### 10KB details
6969

7070
| Loop | Total requests | Throughput | Mean latency | 99p latency | Latency stdev |
7171
| --- | --- | --- | --- | --- | --- |
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 |
7575

7676

7777
#### 100KB details
7878

7979
| Loop | Total requests | Throughput | Mean latency | 99p latency | Latency stdev |
8080
| --- | --- | --- | --- | --- | --- |
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 |
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 | 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%) |
9696

9797

9898
#### 1KB details
9999

100100
| Loop | Total requests | Throughput | Mean latency | 99p latency | Latency stdev |
101101
| --- | --- | --- | --- | --- | --- |
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 |
105105

106106

107107
#### 10KB details
108108

109109
| Loop | Total requests | Throughput | Mean latency | 99p latency | Latency stdev |
110110
| --- | --- | --- | --- | --- | --- |
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 |
114114

115115

116116
#### 100KB details
117117

118118
| Loop | Total requests | Throughput | Mean latency | 99p latency | Latency stdev |
119119
| --- | --- | --- | --- | --- | --- |
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 |
123123

124124

125125
### Other benchmarks

benchmarks/pyver.md

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
## Python versions
44

5-
Run at: Mon 26 May 2025, 18:43
5+
Run at: Tue 12 Aug 2025, 13:07
66
Environment: GHA Linux x86_64 (CPUs: 4)
7-
RLoop version: 0.1.2
7+
RLoop version: 0.1.5
88

99
Comparison between different Python versions.
1010
The only test performed is the raw socket one.
@@ -14,45 +14,45 @@ The only test performed is the raw socket one.
1414

1515
| Python version | Total requests | Throughput | Mean latency | 99p latency | Latency stdev |
1616
| --- | --- | --- | --- | --- | --- |
17-
| 3.10 | 183734 | 18373.4 | 0.053ms | 0.073ms | 0.009 |
18-
| 3.11 | 182561 | 18256.1 | 0.053ms | 0.075ms | 0.01 |
19-
| 3.12 | 179827 | 17982.7 | 0.054ms | 0.077ms | 0.011 |
20-
| 3.13 | 181028 | 18102.8 | 0.054ms | 0.076ms | 0.01 |
17+
| 3.10 | 173492 | 17349.2 | 0.056ms | 0.077ms | 0.01 |
18+
| 3.11 | 174637 | 17463.7 | 0.056ms | 0.077ms | 0.01 |
19+
| 3.12 | 168967 | 16896.7 | 0.057ms | 0.078ms | 0.01 |
20+
| 3.13 | 173281 | 17328.1 | 0.056ms | 0.077ms | 0.01 |
2121

2222

2323
### 10KB
2424

2525
| Python version | Total requests | Throughput | Mean latency | 99p latency | Latency stdev |
2626
| --- | --- | --- | --- | --- | --- |
27-
| 3.10 | 158534 | 15853.4 | 0.06ms | 0.084ms | 0.012 |
28-
| 3.11 | 158605 | 15860.5 | 0.06ms | 0.086ms | 0.012 |
29-
| 3.12 | 149465 | 14946.5 | 0.064ms | 0.089ms | 0.014 |
30-
| 3.13 | 164537 | 16453.7 | 0.058ms | 0.079ms | 0.011 |
27+
| 3.10 | 150884 | 15088.4 | 0.064ms | 0.088ms | 0.012 |
28+
| 3.11 | 149967 | 14996.7 | 0.064ms | 0.088ms | 0.013 |
29+
| 3.12 | 144300 | 14430.0 | 0.067ms | 0.091ms | 0.013 |
30+
| 3.13 | 159929 | 15992.9 | 0.059ms | 0.082ms | 0.011 |
3131

3232

3333
### 100KB
3434

3535
| Python version | Total requests | Throughput | Mean latency | 99p latency | Latency stdev |
3636
| --- | --- | --- | --- | --- | --- |
37-
| 3.10 | 74532 | 7453.2 | 0.132ms | 0.171ms | 0.031 |
38-
| 3.11 | 74820 | 7482.0 | 0.131ms | 0.164ms | 0.035 |
39-
| 3.12 | 76570 | 7657.0 | 0.128ms | 0.166ms | 0.034 |
40-
| 3.13 | 74302 | 7430.2 | 0.132ms | 0.165ms | 0.03 |
37+
| 3.10 | 74986 | 7498.6 | 0.131ms | 0.165ms | 0.031 |
38+
| 3.11 | 74787 | 7478.7 | 0.131ms | 0.164ms | 0.03 |
39+
| 3.12 | 73346 | 7334.6 | 0.133ms | 0.168ms | 0.031 |
40+
| 3.13 | 71543 | 7154.3 | 0.137ms | 0.171ms | 0.031 |
4141

4242

4343
### 10KB VS other
4444

4545
| Python version | Loop | Total requests | Throughput | Mean latency | 99p latency | Latency stdev |
4646
| --- | --- | --- | --- | --- | --- | --- |
47-
| 3.10 | asyncio | 153639 | 15363.9 (96.9%) | 0.065ms | 0.093ms | 0.012 |
48-
| 3.10 | rloop | 158534 | 15853.4 (100.0%) | 0.06ms | 0.084ms | 0.012 |
49-
| 3.10 | uvloop | 156487 | 15648.7 (98.7%) | 0.061ms | 0.089ms | 0.014 |
50-
| 3.11 | asyncio | 145181 | 14518.1 (91.5%) | 0.067ms | 0.097ms | 0.019 |
51-
| 3.11 | rloop | 158605 | 15860.5 (100.0%) | 0.06ms | 0.086ms | 0.012 |
52-
| 3.11 | uvloop | 154231 | 15423.1 (97.2%) | 0.062ms | 0.089ms | 0.014 |
53-
| 3.12 | asyncio | 159232 | 15923.2 (106.5%) | 0.06ms | 0.091ms | 0.014 |
54-
| 3.12 | rloop | 149465 | 14946.5 (100.0%) | 0.064ms | 0.089ms | 0.014 |
55-
| 3.12 | uvloop | 151907 | 15190.7 (101.6%) | 0.064ms | 0.095ms | 0.014 |
56-
| 3.13 | asyncio | 138677 | 13867.7 (84.3%) | 0.07ms | 0.098ms | 0.013 |
57-
| 3.13 | rloop | 164537 | 16453.7 (100.0%) | 0.058ms | 0.079ms | 0.011 |
58-
| 3.13 | uvloop | 155618 | 15561.8 (94.6%) | 0.063ms | 0.093ms | 0.015 |
47+
| 3.10 | asyncio | 136746 | 13674.6 (90.6%) | 0.072ms | 0.104ms | 0.015 |
48+
| 3.10 | rloop | 150884 | 15088.4 (100.0%) | 0.064ms | 0.088ms | 0.012 |
49+
| 3.10 | uvloop | 146153 | 14615.3 (96.9%) | 0.066ms | 0.095ms | 0.014 |
50+
| 3.11 | asyncio | 135265 | 13526.5 (90.2%) | 0.072ms | 0.099ms | 0.014 |
51+
| 3.11 | rloop | 149967 | 14996.7 (100.0%) | 0.064ms | 0.088ms | 0.013 |
52+
| 3.11 | uvloop | 146669 | 14666.9 (97.8%) | 0.066ms | 0.095ms | 0.014 |
53+
| 3.12 | asyncio | 146959 | 14695.9 (101.8%) | 0.065ms | 0.099ms | 0.016 |
54+
| 3.12 | rloop | 144300 | 14430.0 (100.0%) | 0.067ms | 0.091ms | 0.013 |
55+
| 3.12 | uvloop | 135345 | 13534.5 (93.8%) | 0.071ms | 0.1ms | 0.015 |
56+
| 3.13 | asyncio | 130213 | 13021.3 (81.4%) | 0.073ms | 0.105ms | 0.017 |
57+
| 3.13 | rloop | 159929 | 15992.9 (100.0%) | 0.059ms | 0.082ms | 0.011 |
58+
| 3.13 | uvloop | 147904 | 14790.4 (92.5%) | 0.066ms | 0.096ms | 0.014 |

0 commit comments

Comments
 (0)