Skip to content

Commit cdd698b

Browse files
committed
Update readme and result
1 parent 45ebba1 commit cdd698b

File tree

8 files changed

+319
-88
lines changed

8 files changed

+319
-88
lines changed

Akka.Persistence.Benchmarks.sln

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SolutionFolder", "SolutionF
88
global.json = global.json
99
README.md = README.md
1010
RELEASE_NOTES.md = RELEASE_NOTES.md
11+
RESULT.md = RESULT.md
1112
EndProjectSection
1213
EndProject
1314
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Akka.Persistence.Benchmarks", "src\Akka.Persistence.Benchmarks\Akka.Persistence.Benchmarks.csproj", "{A2743044-7635-4DE5-931F-9D53624EBC1B}"

README.md

Lines changed: 160 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,163 @@
1+
# Akka.Persistence Benchmark Results
2+
3+
## Test Environment
4+
5+
```
6+
BenchmarkDotNet v0.15.4, Windows 10 (10.0.19045.6332/22H2/2022Update)
7+
AMD Ryzen 9 3900X 3.79GHz, 1 CPU, 24 logical and 12 physical cores
8+
.NET SDK 9.0.110
9+
[Host] : .NET 9.0.9 (9.0.9, 9.0.925.41916), X64 RyuJIT x86-64-v3
10+
LongRun : .NET 9.0.9 (9.0.9, 9.0.925.41916), X64 RyuJIT x86-64-v3
11+
12+
Job=LongRun EvaluateOverhead=False Concurrent=True
13+
Server=True InvocationCount=1 IterationCount=10
14+
LaunchCount=3 RunStrategy=Monitoring UnrollFactor=1
15+
WarmupCount=3
16+
```
17+
18+
---
19+
20+
## Azure Table Storage
21+
22+
### Azure Group Persist Benchmark
23+
24+
| Method | BatchSize | Mean | Error | StdDev | msg/sec |
25+
|--------------|-----------|-------------:|--------------:|--------------:|----------------:|
26+
| **Persist** | **1** | **NA** | **NA** | **NA** | **<not found>** |
27+
| PersistAsync | 1 | NA | NA | NA | <not found> |
28+
| **Persist** | **100** | **1.008 ms** | **0.2551 ms** | **0.3818 ms** | **991.91** |
29+
| PersistAsync | 100 | 1.032 ms | 0.2684 ms | 0.4018 ms | 968.57 |
30+
31+
**Note**: Benchmarks with issues for BatchSize=1
32+
33+
### Azure Persist Benchmark
34+
35+
| Method | BatchSize | Mean | Error | StdDev | msg/sec |
36+
|--------------|-----------|---------------:|--------------:|--------------:|-------------:|
37+
| **Persist** | **1** | **2,718.9 μs** | **142.66 μs** | **213.53 μs** | **367.80** |
38+
| PersistAsync | 1 | 2,685.5 μs | 111.16 μs | 166.38 μs | 372.37 |
39+
| **Persist** | **100** | **277.2 μs** | **25.16 μs** | **37.66 μs** | **3,607.36** |
40+
| PersistAsync | 100 | 283.8 μs | 40.57 μs | 60.73 μs | 3,523.35 |
41+
42+
### Azure Recovery Benchmark
43+
44+
| Method | Mean | Error | StdDev | msg/sec |
45+
|------------------------ |---------:|---------:|---------:|----------:|
46+
| RecoveryBenchmarkMethod | 30.85 μs | 2.768 μs | 4.143 μs | 32,417.54 |
47+
48+
---
49+
50+
## MongoDB
51+
52+
### MongoDB Group Persist Benchmark
53+
54+
| Method | BatchSize | Mean | Error | StdDev | Median | msg/sec |
55+
|--------------|-----------|-------------:|--------------:|--------------:|--------------:|--------------:|
56+
| **Persist** | **1** | **76.60 μs** | **10.226 μs** | **15.307 μs** | **73.260 μs** | **13,054.79** |
57+
| PersistAsync | 1 | 76.47 μs | 6.315 μs | 9.451 μs | 73.763 μs | 13,077.38 |
58+
| **Persist** | **100** | **12.73 μs** | **4.833 μs** | **7.233 μs** | **9.040 μs** | **78,582.94** |
59+
| PersistAsync | 100 | 11.74 μs | 4.216 μs | 6.310 μs | 8.960 μs | 85,179.51 |
60+
61+
### MongoDB Persist Benchmark
62+
63+
| Method | BatchSize | Mean | Error | StdDev | msg/sec |
64+
|--------------|-----------|--------------:|--------------:|--------------:|--------------:|
65+
| **Persist** | **1** | **396.07 μs** | **60.553 μs** | **90.632 μs** | **2,524.80** |
66+
| PersistAsync | 1 | 384.12 μs | 55.282 μs | 82.743 μs | 2,603.38 |
67+
| **Persist** | **100** | **48.56 μs** | **2.322 μs** | **3.476 μs** | **20,591.09** |
68+
| PersistAsync | 100 | 48.24 μs | 2.071 μs | 3.099 μs | 20,730.80 |
69+
70+
### MongoDB Recovery Benchmark
71+
72+
| Method | Mean | Error | StdDev | msg/sec |
73+
|------------------------ |---------:|---------:|---------:|----------:|
74+
| RecoveryBenchmarkMethod | 30.76 μs | 1.420 μs | 2.126 μs | 32,511.04 |
75+
76+
---
77+
78+
## PostgreSQL
79+
80+
### PostgreSQL Group Persist Benchmark
81+
82+
| Method | BatchSize | Mean | Error | StdDev | msg/sec |
83+
|--------------|-----------|--------------:|--------------:|--------------:|--------------:|
84+
| **Persist** | **1** | **248.14 μs** | **15.827 μs** | **23.688 μs** | **4,030.00** |
85+
| PersistAsync | 1 | 248.91 μs | 16.294 μs | 24.388 μs | 4,017.59 |
86+
| **Persist** | **100** | **22.24 μs** | **4.922 μs** | **7.367 μs** | **44,969.43** |
87+
| PersistAsync | 100 | 21.50 μs | 3.884 μs | 5.813 μs | 46,521.44 |
88+
89+
### PostgreSQL Persist Benchmark
90+
91+
| Method | BatchSize | Mean | Error | StdDev | msg/sec |
92+
|--------------|-----------|----------------:|--------------:|-------------:|--------------:|
93+
| **Persist** | **1** | **1,127.35 μs** | **50.388 μs** | **75.42 μs** | **887.04** |
94+
| PersistAsync | 1 | 1,108.13 μs | 43.096 μs | 64.50 μs | 902.42 |
95+
| **Persist** | **100** | **46.10 μs** | **7.517 μs** | **11.25 μs** | **21,693.92** |
96+
| PersistAsync | 100 | 54.10 μs | 8.196 μs | 12.27 μs | 18,485.15 |
97+
98+
### PostgreSQL Recovery Benchmark
99+
100+
| Method | Mean | Error | StdDev | msg/sec |
101+
|------------------------ |---------:|---------:|---------:|----------:|
102+
| RecoveryBenchmarkMethod | 15.81 μs | 1.586 μs | 2.373 μs | 63,246.99 |
103+
104+
---
105+
106+
## Redis
107+
108+
### Redis Group Persist Benchmark
109+
110+
| Method | BatchSize | Mean | Error | StdDev | msg/sec |
111+
|--------------|-----------|--------------:|--------------:|--------------:|---------------:|
112+
| **Persist** | **1** | **68.245 μs** | **4.1685 μs** | **6.2393 μs** | **14,653.11** |
113+
| PersistAsync | 1 | 66.768 μs | 4.1736 μs | 6.2469 μs | 14,977.15 |
114+
| **Persist** | **100** | **6.114 μs** | **0.8959 μs** | **1.3410 μs** | **163,571.66** |
115+
| PersistAsync | 100 | 5.844 μs | 0.5898 μs | 0.8828 μs | 171,128.92 |
116+
117+
### Redis Persist Benchmark
118+
119+
| Method | BatchSize | Mean | Error | StdDev | msg/sec |
120+
|--------------|-----------|--------------:|--------------:|--------------:|--------------:|
121+
| **Persist** | **1** | **546.84 μs** | **22.830 μs** | **34.170 μs** | **1,828.68** |
122+
| PersistAsync | 1 | 565.79 μs | 33.090 μs | 49.527 μs | 1,767.45 |
123+
| **Persist** | **100** | **17.32 μs** | **1.677 μs** | **2.511 μs** | **57,751.15** |
124+
| PersistAsync | 100 | 16.84 μs | 2.027 μs | 3.034 μs | 59,394.70 |
125+
126+
### Redis Recovery Benchmark
127+
128+
| Method | Mean | Error | StdDev | msg/sec |
129+
|------------------------ |---------:|---------:|---------:|----------:|
130+
| RecoveryBenchmarkMethod | 10.36 μs | 0.564 μs | 0.845 μs | 96,570.90 |
131+
132+
---
133+
134+
## SQL Server
135+
136+
### SQL Server Group Persist Benchmark
137+
138+
| Method | BatchSize | Mean | Error | StdDev | msg/sec |
139+
|--------------|-----------|--------------:|--------------:|--------------:|--------------:|
140+
| **Persist** | **1** | **977.86 μs** | **41.547 μs** | **62.186 μs** | **1,022.64** |
141+
| PersistAsync | 1 | 977.57 μs | 41.637 μs | 62.320 μs | 1,022.94 |
142+
| **Persist** | **100** | **73.32 μs** | **5.269 μs** | **7.886 μs** | **13,638.03** |
143+
| PersistAsync | 100 | 72.80 μs | 4.537 μs | 6.790 μs | 13,736.47 |
144+
145+
### SQL Server Persist Benchmark
146+
147+
| Method | BatchSize | Mean | Error | StdDev | msg/sec |
148+
|--------------|-----------|---------------:|--------------:|--------------:|-------------:|
149+
| **Persist** | **1** | **5,016.0 μs** | **186.50 μs** | **279.15 μs** | **199.36** |
150+
| PersistAsync | 1 | 5,093.4 μs | 302.33 μs | 452.52 μs | 196.33 |
151+
| **Persist** | **100** | **141.3 μs** | **17.89 μs** | **26.78 μs** | **7,079.37** |
152+
| PersistAsync | 100 | 139.9 μs | 18.32 μs | 27.42 μs | 7,150.51 |
153+
154+
### SQL Server Recovery Benchmark
155+
156+
| Method | Mean | Error | StdDev | msg/sec |
157+
|------------------------ |---------:|---------:|---------:|----------:|
158+
| RecoveryBenchmarkMethod | 39.89 μs | 8.668 μs | 12.97 μs | 25,069.10 |
159+
160+
1161
# build-system-template
2162
Akka.NET project build system template that provides standardized build and CI/CD configuration for all Akka.NET projects.
3163

RESULT.md

Lines changed: 158 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,158 @@
1+
# Akka.Persistence Benchmark Results
2+
3+
## Test Environment
4+
5+
```
6+
BenchmarkDotNet v0.15.4, Windows 10 (10.0.19045.6332/22H2/2022Update)
7+
AMD Ryzen 9 3900X 3.79GHz, 1 CPU, 24 logical and 12 physical cores
8+
.NET SDK 9.0.110
9+
[Host] : .NET 9.0.9 (9.0.9, 9.0.925.41916), X64 RyuJIT x86-64-v3
10+
LongRun : .NET 9.0.9 (9.0.9, 9.0.925.41916), X64 RyuJIT x86-64-v3
11+
12+
Job=LongRun EvaluateOverhead=False Concurrent=True
13+
Server=True InvocationCount=1 IterationCount=10
14+
LaunchCount=3 RunStrategy=Monitoring UnrollFactor=1
15+
WarmupCount=3
16+
```
17+
18+
---
19+
20+
## Azure Table Storage
21+
22+
### Azure Group Persist Benchmark
23+
24+
| Method | BatchSize | Mean | Error | StdDev | msg/sec |
25+
|--------------|-----------|-------------:|--------------:|--------------:|----------------:|
26+
| **Persist** | **1** | **NA** | **NA** | **NA** | **<not found>** |
27+
| PersistAsync | 1 | NA | NA | NA | <not found> |
28+
| **Persist** | **100** | **1.008 ms** | **0.2551 ms** | **0.3818 ms** | **991.91** |
29+
| PersistAsync | 100 | 1.032 ms | 0.2684 ms | 0.4018 ms | 968.57 |
30+
31+
**Note**: Benchmarks with issues for BatchSize=1
32+
33+
### Azure Persist Benchmark
34+
35+
| Method | BatchSize | Mean | Error | StdDev | msg/sec |
36+
|--------------|-----------|---------------:|--------------:|--------------:|-------------:|
37+
| **Persist** | **1** | **2,718.9 μs** | **142.66 μs** | **213.53 μs** | **367.80** |
38+
| PersistAsync | 1 | 2,685.5 μs | 111.16 μs | 166.38 μs | 372.37 |
39+
| **Persist** | **100** | **277.2 μs** | **25.16 μs** | **37.66 μs** | **3,607.36** |
40+
| PersistAsync | 100 | 283.8 μs | 40.57 μs | 60.73 μs | 3,523.35 |
41+
42+
### Azure Recovery Benchmark
43+
44+
| Method | Mean | Error | StdDev | msg/sec |
45+
|------------------------ |---------:|---------:|---------:|----------:|
46+
| RecoveryBenchmarkMethod | 30.85 μs | 2.768 μs | 4.143 μs | 32,417.54 |
47+
48+
---
49+
50+
## MongoDB
51+
52+
### MongoDB Group Persist Benchmark
53+
54+
| Method | BatchSize | Mean | Error | StdDev | Median | msg/sec |
55+
|--------------|-----------|-------------:|--------------:|--------------:|--------------:|--------------:|
56+
| **Persist** | **1** | **76.60 μs** | **10.226 μs** | **15.307 μs** | **73.260 μs** | **13,054.79** |
57+
| PersistAsync | 1 | 76.47 μs | 6.315 μs | 9.451 μs | 73.763 μs | 13,077.38 |
58+
| **Persist** | **100** | **12.73 μs** | **4.833 μs** | **7.233 μs** | **9.040 μs** | **78,582.94** |
59+
| PersistAsync | 100 | 11.74 μs | 4.216 μs | 6.310 μs | 8.960 μs | 85,179.51 |
60+
61+
### MongoDB Persist Benchmark
62+
63+
| Method | BatchSize | Mean | Error | StdDev | msg/sec |
64+
|--------------|-----------|--------------:|--------------:|--------------:|--------------:|
65+
| **Persist** | **1** | **396.07 μs** | **60.553 μs** | **90.632 μs** | **2,524.80** |
66+
| PersistAsync | 1 | 384.12 μs | 55.282 μs | 82.743 μs | 2,603.38 |
67+
| **Persist** | **100** | **48.56 μs** | **2.322 μs** | **3.476 μs** | **20,591.09** |
68+
| PersistAsync | 100 | 48.24 μs | 2.071 μs | 3.099 μs | 20,730.80 |
69+
70+
### MongoDB Recovery Benchmark
71+
72+
| Method | Mean | Error | StdDev | msg/sec |
73+
|------------------------ |---------:|---------:|---------:|----------:|
74+
| RecoveryBenchmarkMethod | 30.76 μs | 1.420 μs | 2.126 μs | 32,511.04 |
75+
76+
---
77+
78+
## PostgreSQL
79+
80+
### PostgreSQL Group Persist Benchmark
81+
82+
| Method | BatchSize | Mean | Error | StdDev | msg/sec |
83+
|--------------|-----------|--------------:|--------------:|--------------:|--------------:|
84+
| **Persist** | **1** | **248.14 μs** | **15.827 μs** | **23.688 μs** | **4,030.00** |
85+
| PersistAsync | 1 | 248.91 μs | 16.294 μs | 24.388 μs | 4,017.59 |
86+
| **Persist** | **100** | **22.24 μs** | **4.922 μs** | **7.367 μs** | **44,969.43** |
87+
| PersistAsync | 100 | 21.50 μs | 3.884 μs | 5.813 μs | 46,521.44 |
88+
89+
### PostgreSQL Persist Benchmark
90+
91+
| Method | BatchSize | Mean | Error | StdDev | msg/sec |
92+
|--------------|-----------|----------------:|--------------:|-------------:|--------------:|
93+
| **Persist** | **1** | **1,127.35 μs** | **50.388 μs** | **75.42 μs** | **887.04** |
94+
| PersistAsync | 1 | 1,108.13 μs | 43.096 μs | 64.50 μs | 902.42 |
95+
| **Persist** | **100** | **46.10 μs** | **7.517 μs** | **11.25 μs** | **21,693.92** |
96+
| PersistAsync | 100 | 54.10 μs | 8.196 μs | 12.27 μs | 18,485.15 |
97+
98+
### PostgreSQL Recovery Benchmark
99+
100+
| Method | Mean | Error | StdDev | msg/sec |
101+
|------------------------ |---------:|---------:|---------:|----------:|
102+
| RecoveryBenchmarkMethod | 15.81 μs | 1.586 μs | 2.373 μs | 63,246.99 |
103+
104+
---
105+
106+
## Redis
107+
108+
### Redis Group Persist Benchmark
109+
110+
| Method | BatchSize | Mean | Error | StdDev | msg/sec |
111+
|--------------|-----------|--------------:|--------------:|--------------:|---------------:|
112+
| **Persist** | **1** | **68.245 μs** | **4.1685 μs** | **6.2393 μs** | **14,653.11** |
113+
| PersistAsync | 1 | 66.768 μs | 4.1736 μs | 6.2469 μs | 14,977.15 |
114+
| **Persist** | **100** | **6.114 μs** | **0.8959 μs** | **1.3410 μs** | **163,571.66** |
115+
| PersistAsync | 100 | 5.844 μs | 0.5898 μs | 0.8828 μs | 171,128.92 |
116+
117+
### Redis Persist Benchmark
118+
119+
| Method | BatchSize | Mean | Error | StdDev | msg/sec |
120+
|--------------|-----------|--------------:|--------------:|--------------:|--------------:|
121+
| **Persist** | **1** | **546.84 μs** | **22.830 μs** | **34.170 μs** | **1,828.68** |
122+
| PersistAsync | 1 | 565.79 μs | 33.090 μs | 49.527 μs | 1,767.45 |
123+
| **Persist** | **100** | **17.32 μs** | **1.677 μs** | **2.511 μs** | **57,751.15** |
124+
| PersistAsync | 100 | 16.84 μs | 2.027 μs | 3.034 μs | 59,394.70 |
125+
126+
### Redis Recovery Benchmark
127+
128+
| Method | Mean | Error | StdDev | msg/sec |
129+
|------------------------ |---------:|---------:|---------:|----------:|
130+
| RecoveryBenchmarkMethod | 10.36 μs | 0.564 μs | 0.845 μs | 96,570.90 |
131+
132+
---
133+
134+
## SQL Server
135+
136+
### SQL Server Group Persist Benchmark
137+
138+
| Method | BatchSize | Mean | Error | StdDev | msg/sec |
139+
|--------------|-----------|--------------:|--------------:|--------------:|--------------:|
140+
| **Persist** | **1** | **977.86 μs** | **41.547 μs** | **62.186 μs** | **1,022.64** |
141+
| PersistAsync | 1 | 977.57 μs | 41.637 μs | 62.320 μs | 1,022.94 |
142+
| **Persist** | **100** | **73.32 μs** | **5.269 μs** | **7.886 μs** | **13,638.03** |
143+
| PersistAsync | 100 | 72.80 μs | 4.537 μs | 6.790 μs | 13,736.47 |
144+
145+
### SQL Server Persist Benchmark
146+
147+
| Method | BatchSize | Mean | Error | StdDev | msg/sec |
148+
|--------------|-----------|---------------:|--------------:|--------------:|-------------:|
149+
| **Persist** | **1** | **5,016.0 μs** | **186.50 μs** | **279.15 μs** | **199.36** |
150+
| PersistAsync | 1 | 5,093.4 μs | 302.33 μs | 452.52 μs | 196.33 |
151+
| **Persist** | **100** | **141.3 μs** | **17.89 μs** | **26.78 μs** | **7,079.37** |
152+
| PersistAsync | 100 | 139.9 μs | 18.32 μs | 27.42 μs | 7,150.51 |
153+
154+
### SQL Server Recovery Benchmark
155+
156+
| Method | Mean | Error | StdDev | msg/sec |
157+
|------------------------ |---------:|---------:|---------:|----------:|
158+
| RecoveryBenchmarkMethod | 39.89 μs | 8.668 μs | 12.97 μs | 25,069.10 |

src/Akka.Console/Akka.Console.csproj

Lines changed: 0 additions & 15 deletions
This file was deleted.

src/Akka.Console/HelloActor.cs

Lines changed: 0 additions & 15 deletions
This file was deleted.

src/Akka.Console/Program.cs

Lines changed: 0 additions & 29 deletions
This file was deleted.

0 commit comments

Comments
 (0)