Skip to content

Commit 2559efb

Browse files
Update benchmark results (#35)
Co-authored-by: gi0baro <5019985+gi0baro@users.noreply.github.com>
1 parent 22f38d0 commit 2559efb

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: Thu 17 Apr 2025, 17:17
3+
Run at: Mon 26 May 2025, 18:42
44
Environment: GHA Linux x86_64 (CPUs: 4)
55
Python 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

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: Thu 17 Apr 2025, 17:18
5+
Run at: Mon 26 May 2025, 18:43
66
Environment: GHA Linux x86_64 (CPUs: 4)
7-
RLoop version: 0.1.1
7+
RLoop version: 0.1.2
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 | 204732 | 20473.2 | 0.045ms | 0.065ms | 0.008 |
18-
| 3.11 | 196732 | 19673.2 | 0.048ms | 0.067ms | 0.01 |
19-
| 3.12 | 188072 | 18807.2 | 0.052ms | 0.069ms | 0.008 |
20-
| 3.13 | 189527 | 18952.7 | 0.053ms | 0.073ms | 0.009 |
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 |
2121

2222

2323
### 10KB
2424

2525
| Python version | Total requests | Throughput | Mean latency | 99p latency | Latency stdev |
2626
| --- | --- | --- | --- | --- | --- |
27-
| 3.10 | 177102 | 17710.2 | 0.055ms | 0.076ms | 0.012 |
28-
| 3.11 | 182910 | 18291.0 | 0.053ms | 0.073ms | 0.007 |
29-
| 3.12 | 174548 | 17454.8 | 0.055ms | 0.076ms | 0.009 |
30-
| 3.13 | 172471 | 17247.1 | 0.055ms | 0.076ms | 0.009 |
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 |
3131

3232

3333
### 100KB
3434

3535
| Python version | Total requests | Throughput | Mean latency | 99p latency | Latency stdev |
3636
| --- | --- | --- | --- | --- | --- |
37-
| 3.10 | 115367 | 11536.7 | 0.084ms | 0.122ms | 0.016 |
38-
| 3.11 | 114159 | 11415.9 | 0.087ms | 0.124ms | 0.015 |
39-
| 3.12 | 116232 | 11623.2 | 0.085ms | 0.11ms | 0.012 |
40-
| 3.13 | 94847 | 9484.7 | 0.104ms | 0.142ms | 0.021 |
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 |
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 | 148582 | 14858.2 (83.9%) | 0.067ms | 0.097ms | 0.013 |
48-
| 3.10 | rloop | 177102 | 17710.2 (100.0%) | 0.055ms | 0.076ms | 0.012 |
49-
| 3.10 | uvloop | 144995 | 14499.5 (81.9%) | 0.067ms | 0.092ms | 0.013 |
50-
| 3.11 | asyncio | 147801 | 14780.1 (80.8%) | 0.066ms | 0.096ms | 0.014 |
51-
| 3.11 | rloop | 182910 | 18291.0 (100.0%) | 0.053ms | 0.073ms | 0.007 |
52-
| 3.11 | uvloop | 150928 | 15092.8 (82.5%) | 0.065ms | 0.088ms | 0.011 |
53-
| 3.12 | asyncio | 159524 | 15952.4 (91.4%) | 0.059ms | 0.093ms | 0.014 |
54-
| 3.12 | rloop | 174548 | 17454.8 (100.0%) | 0.055ms | 0.076ms | 0.009 |
55-
| 3.12 | uvloop | 144773 | 14477.3 (82.9%) | 0.066ms | 0.093ms | 0.012 |
56-
| 3.13 | asyncio | 127934 | 12793.4 (74.2%) | 0.076ms | 0.104ms | 0.015 |
57-
| 3.13 | rloop | 172471 | 17247.1 (100.0%) | 0.055ms | 0.076ms | 0.009 |
58-
| 3.13 | uvloop | 147221 | 14722.1 (85.4%) | 0.065ms | 0.093ms | 0.012 |
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 |

0 commit comments

Comments
 (0)