Skip to content

Commit c91c9b5

Browse files
committed
Add macOS benchmarks
1 parent 9b1924d commit c91c9b5

1 file changed

Lines changed: 91 additions & 0 deletions

File tree

readme.md

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,97 @@ Job=ShortRun IterationCount=3 LaunchCount=1 WarmupCount=3
221221
| Blake2Fast | 10000000 | 9,296,369.53 ns | 292,683.481 ns | 16,042.969 ns | 12.02 | 0.06 | 5,829 B | - | 88 B | NA |
222222
| SHA256 | 10000000 | 3,640,666.41 ns | 484,814.553 ns | 26,574.322 ns | 4.71 | 0.04 | 342 B | - | - | NA |
223223

224+
225+
```
226+
BenchmarkDotNet v0.15.8, macOS Tahoe 26.5.1 (25F80) [Darwin 25.5.0]
227+
Apple M4 Pro, 1 CPU, 14 logical and 14 physical cores
228+
.NET SDK 10.0.201
229+
[Host] : .NET 10.0.5 (10.0.5, 10.0.526.15411), Arm64 RyuJIT armv8.0-a
230+
ShortRun : .NET 10.0.5 (10.0.5, 10.0.526.15411), Arm64 RyuJIT armv8.0-a
231+
232+
Job=ShortRun IterationCount=3 LaunchCount=1 WarmupCount=3
233+
```
234+
235+
| Method | N | Mean | Error | StdDev | Ratio | RatioSD | Gen0 | Gen1 | Allocated | Alloc Ratio |
236+
|-------------------------- |--------- |----------------:|---------------:|--------------:|------:|--------:|-------:|-------:|----------:|------------:|
237+
| 'Blake3 native' | 4 | 54.63 ns | 4.892 ns | 0.268 ns | 1.00 | 0.01 | - | - | - | NA |
238+
| 'Blake3 native parallel' | 4 | 73.61 ns | 1.130 ns | 0.062 ns | 1.35 | 0.01 | - | - | - | NA |
239+
| 'Blake3 managed' | 4 | 53.40 ns | 0.958 ns | 0.052 ns | 0.98 | 0.00 | - | - | - | NA |
240+
| 'Blake3 managed parallel' | 4 | 155.98 ns | 7.096 ns | 0.389 ns | 2.86 | 0.01 | 0.2427 | - | 2032 B | NA |
241+
| Blake2Fast | 4 | 89.95 ns | 5.470 ns | 0.300 ns | 1.65 | 0.01 | 0.0105 | - | 88 B | NA |
242+
| SHA256 | 4 | 155.78 ns | 5.971 ns | 0.327 ns | 2.85 | 0.01 | - | - | - | NA |
243+
| | | | | | | | | | | |
244+
| 'Blake3 native' | 100 | 98.00 ns | 5.644 ns | 0.309 ns | 1.00 | 0.00 | - | - | - | NA |
245+
| 'Blake3 native parallel' | 100 | 121.07 ns | 8.355 ns | 0.458 ns | 1.24 | 0.01 | - | - | - | NA |
246+
| 'Blake3 managed' | 100 | 109.72 ns | 6.966 ns | 0.382 ns | 1.12 | 0.00 | - | - | - | NA |
247+
| 'Blake3 managed parallel' | 100 | 214.49 ns | 3.280 ns | 0.180 ns | 2.19 | 0.01 | 0.2427 | - | 2032 B | NA |
248+
| Blake2Fast | 100 | 91.00 ns | 2.603 ns | 0.143 ns | 0.93 | 0.00 | 0.0105 | - | 88 B | NA |
249+
| SHA256 | 100 | 119.61 ns | 16.474 ns | 0.903 ns | 1.22 | 0.01 | - | - | - | NA |
250+
| | | | | | | | | | | |
251+
| 'Blake3 native' | 1000 | 746.78 ns | 12.175 ns | 0.667 ns | 1.00 | 0.00 | - | - | - | NA |
252+
| 'Blake3 native parallel' | 1000 | 764.26 ns | 10.076 ns | 0.552 ns | 1.02 | 0.00 | - | - | - | NA |
253+
| 'Blake3 managed' | 1000 | 891.85 ns | 14.138 ns | 0.775 ns | 1.19 | 0.00 | - | - | - | NA |
254+
| 'Blake3 managed parallel' | 1000 | 1,069.82 ns | 20.768 ns | 1.138 ns | 1.43 | 0.00 | 0.2422 | - | 2032 B | NA |
255+
| Blake2Fast | 1000 | 634.74 ns | 2.637 ns | 0.145 ns | 0.85 | 0.00 | 0.0105 | - | 88 B | NA |
256+
| SHA256 | 1000 | 350.97 ns | 6.532 ns | 0.358 ns | 0.47 | 0.00 | - | - | - | NA |
257+
| | | | | | | | | | | |
258+
| 'Blake3 native' | 10000 | 4,602.40 ns | 251.165 ns | 13.767 ns | 1.00 | 0.00 | - | - | - | NA |
259+
| 'Blake3 native parallel' | 10000 | 33,551.96 ns | 3,596.025 ns | 197.110 ns | 7.29 | 0.04 | - | - | - | NA |
260+
| 'Blake3 managed' | 10000 | 5,586.79 ns | 142.646 ns | 7.819 ns | 1.21 | 0.00 | - | - | - | NA |
261+
| 'Blake3 managed parallel' | 10000 | 5,993.31 ns | 51.767 ns | 2.837 ns | 1.30 | 0.00 | 0.2365 | - | 2032 B | NA |
262+
| Blake2Fast | 10000 | 6,246.34 ns | 197.050 ns | 10.801 ns | 1.36 | 0.00 | 0.0076 | - | 88 B | NA |
263+
| SHA256 | 10000 | 2,994.28 ns | 65.116 ns | 3.569 ns | 0.65 | 0.00 | - | - | - | NA |
264+
| | | | | | | | | | | |
265+
| 'Blake3 native' | 65536 | 26,085.55 ns | 473.545 ns | 25.957 ns | 1.00 | 0.00 | - | - | - | NA |
266+
| 'Blake3 native parallel' | 65536 | 42,992.70 ns | 12,602.885 ns | 690.807 ns | 1.65 | 0.02 | - | - | - | NA |
267+
| 'Blake3 managed' | 65536 | 31,172.85 ns | 1,403.355 ns | 76.923 ns | 1.20 | 0.00 | - | - | - | NA |
268+
| 'Blake3 managed parallel' | 65536 | 34,678.61 ns | 1,102.136 ns | 60.412 ns | 1.33 | 0.00 | 0.1831 | - | 2032 B | NA |
269+
| Blake2Fast | 65536 | 40,578.36 ns | 1,088.729 ns | 59.677 ns | 1.56 | 0.00 | - | - | 88 B | NA |
270+
| SHA256 | 65536 | 19,119.21 ns | 917.103 ns | 50.270 ns | 0.73 | 0.00 | - | - | - | NA |
271+
| | | | | | | | | | | |
272+
| 'Blake3 native' | 100000 | 40,564.94 ns | 1,032.091 ns | 56.572 ns | 1.00 | 0.00 | - | - | - | NA |
273+
| 'Blake3 native parallel' | 100000 | 83,064.02 ns | 11,919.892 ns | 653.369 ns | 2.05 | 0.01 | - | - | - | NA |
274+
| 'Blake3 managed' | 100000 | 48,730.08 ns | 1,605.163 ns | 87.984 ns | 1.20 | 0.00 | - | - | - | NA |
275+
| 'Blake3 managed parallel' | 100000 | 51,074.99 ns | 1,218.756 ns | 66.804 ns | 1.26 | 0.00 | 0.1831 | - | 2032 B | NA |
276+
| Blake2Fast | 100000 | 62,500.95 ns | 572.123 ns | 31.360 ns | 1.54 | 0.00 | - | - | 88 B | NA |
277+
| SHA256 | 100000 | 29,042.81 ns | 649.545 ns | 35.604 ns | 0.72 | 0.00 | - | - | - | NA |
278+
| | | | | | | | | | | |
279+
| 'Blake3 native' | 131072 | 52,814.87 ns | 1,446.209 ns | 79.272 ns | 1.00 | 0.00 | - | - | - | NA |
280+
| 'Blake3 native parallel' | 131072 | 50,867.40 ns | 10,235.078 ns | 561.019 ns | 0.96 | 0.01 | - | - | - | NA |
281+
| 'Blake3 managed' | 131072 | 63,088.51 ns | 874.194 ns | 47.918 ns | 1.19 | 0.00 | - | - | - | NA |
282+
| 'Blake3 managed parallel' | 131072 | 68,356.97 ns | 4,505.919 ns | 246.985 ns | 1.29 | 0.00 | 0.1221 | - | 2032 B | NA |
283+
| Blake2Fast | 131072 | 82,224.21 ns | 7,020.556 ns | 384.820 ns | 1.56 | 0.01 | - | - | 88 B | NA |
284+
| SHA256 | 131072 | 38,135.92 ns | 2,443.146 ns | 133.917 ns | 0.72 | 0.00 | - | - | - | NA |
285+
| | | | | | | | | | | |
286+
| 'Blake3 native' | 262144 | 106,478.71 ns | 3,408.555 ns | 186.834 ns | 1.00 | 0.00 | - | - | - | NA |
287+
| 'Blake3 native parallel' | 262144 | 61,529.79 ns | 13,136.312 ns | 720.046 ns | 0.58 | 0.01 | - | - | - | NA |
288+
| 'Blake3 managed' | 262144 | 127,121.48 ns | 3,467.199 ns | 190.049 ns | 1.19 | 0.00 | - | - | - | NA |
289+
| 'Blake3 managed parallel' | 262144 | 39,862.71 ns | 1,349.791 ns | 73.987 ns | 0.37 | 0.00 | 0.7935 | - | 7082 B | NA |
290+
| Blake2Fast | 262144 | 165,279.44 ns | 925.884 ns | 50.751 ns | 1.55 | 0.00 | - | - | 88 B | NA |
291+
| SHA256 | 262144 | 76,187.40 ns | 4,852.938 ns | 266.006 ns | 0.72 | 0.00 | - | - | - | NA |
292+
| | | | | | | | | | | |
293+
| 'Blake3 native' | 524288 | 216,947.68 ns | 11,974.904 ns | 656.385 ns | 1.00 | 0.00 | - | - | - | NA |
294+
| 'Blake3 native parallel' | 524288 | 78,209.23 ns | 6,374.411 ns | 349.403 ns | 0.36 | 0.00 | - | - | - | NA |
295+
| 'Blake3 managed' | 524288 | 255,604.02 ns | 3,465.561 ns | 189.959 ns | 1.18 | 0.00 | - | - | - | NA |
296+
| 'Blake3 managed parallel' | 524288 | 72,289.16 ns | 14,233.826 ns | 780.204 ns | 0.33 | 0.00 | 1.3428 | - | 10632 B | NA |
297+
| Blake2Fast | 524288 | 330,627.79 ns | 8,922.170 ns | 489.054 ns | 1.52 | 0.00 | - | - | 88 B | NA |
298+
| SHA256 | 524288 | 152,092.51 ns | 2,935.931 ns | 160.928 ns | 0.70 | 0.00 | - | - | - | NA |
299+
| | | | | | | | | | | |
300+
| 'Blake3 native' | 1000000 | 417,014.26 ns | 2,345.747 ns | 128.578 ns | 1.00 | 0.00 | - | - | - | NA |
301+
| 'Blake3 native parallel' | 1000000 | 271,067.89 ns | 72,822.569 ns | 3,991.651 ns | 0.65 | 0.01 | - | - | - | NA |
302+
| 'Blake3 managed' | 1000000 | 489,391.44 ns | 1,964.795 ns | 107.697 ns | 1.17 | 0.00 | - | - | - | NA |
303+
| 'Blake3 managed parallel' | 1000000 | 106,021.74 ns | 21,381.775 ns | 1,172.007 ns | 0.25 | 0.00 | 1.8311 | - | 14379 B | NA |
304+
| Blake2Fast | 1000000 | 631,112.36 ns | 14,197.852 ns | 778.232 ns | 1.51 | 0.00 | - | - | 88 B | NA |
305+
| SHA256 | 1000000 | 294,554.46 ns | 13,246.935 ns | 726.109 ns | 0.71 | 0.00 | - | - | - | NA |
306+
| | | | | | | | | | | |
307+
| 'Blake3 native' | 10000000 | 4,203,279.94 ns | 209,883.309 ns | 11,504.412 ns | 1.00 | 0.00 | - | - | - | NA |
308+
| 'Blake3 native parallel' | 10000000 | 664,717.87 ns | 149,454.074 ns | 8,192.082 ns | 0.16 | 0.00 | - | - | - | NA |
309+
| 'Blake3 managed' | 10000000 | 4,933,668.62 ns | 30,826.288 ns | 1,689.693 ns | 1.17 | 0.00 | - | - | - | NA |
310+
| 'Blake3 managed parallel' | 10000000 | 867,942.38 ns | 292,194.575 ns | 16,016.171 ns | 0.21 | 0.00 | 9.7656 | 1.9531 | 84831 B | NA |
311+
| Blake2Fast | 10000000 | 6,311,448.89 ns | 94,187.113 ns | 5,162.713 ns | 1.50 | 0.00 | - | - | 88 B | NA |
312+
| SHA256 | 10000000 | 2,991,769.21 ns | 111,094.488 ns | 6,089.464 ns | 0.71 | 0.00 | - | - | - | NA |
313+
314+
224315
## How to Build?
225316

226317
You need to install the [.NET 10 SDK](https://dotnet.microsoft.com/download/dotnet/10.0) or latest Visual Studio 2026. Then from the root folder:

0 commit comments

Comments
 (0)