Skip to content

Commit 231e58e

Browse files
committed
[Benchmark] save summary in repository.
1 parent 035db6b commit 231e58e

File tree

84 files changed

+1099
-803
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

84 files changed

+1099
-803
lines changed
+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
## Aggregate
2+
3+
### Source
4+
[Aggregate.cs](../../src/StructLinq.Benchmark/Aggregate.cs)
5+
6+
### Results:
7+
``` ini
8+
9+
BenchmarkDotNet=v0.12.0, OS=Windows 10.0.19041
10+
Intel Core i7-7700 CPU 3.60GHz (Kaby Lake), 1 CPU, 8 logical and 4 physical cores
11+
.NET Core SDK=3.1.402
12+
[Host] : .NET Core 3.1.8 (CoreCLR 4.700.20.41105, CoreFX 4.700.20.41903), X64 RyuJIT
13+
DefaultJob : .NET Core 3.1.8 (CoreCLR 4.700.20.41105, CoreFX 4.700.20.41903), X64 RyuJIT
14+
15+
16+
```
17+
| Method | Mean | Error | StdDev | Ratio | Gen 0 | Gen 1 | Gen 2 | Allocated |
18+
|------------------------- |----------:|----------:|----------:|------:|------:|------:|------:|----------:|
19+
| SysAggregate | 56.222 us | 0.1176 us | 0.1100 us | 1.00 | - | - | - | 40 B |
20+
| DelegateAggregate | 30.932 us | 0.0806 us | 0.0714 us | 0.55 | - | - | - | 24 B |
21+
| StructAggregate | 5.637 us | 0.0097 us | 0.0091 us | 0.10 | - | - | - | 24 B |
22+
| ZeroAllocStructAggregate | 15.053 us | 0.0089 us | 0.0074 us | 0.27 | - | - | - | - |
23+
| ConvertAggregate | 39.362 us | 0.0762 us | 0.0637 us | 0.70 | - | - | - | 64 B |
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
## ArrayOfBigStructSum
2+
3+
### Source
4+
[ArrayOfBigStructSum.cs](../../src/StructLinq.Benchmark/ArrayOfBigStructSum.cs)
5+
6+
### Results:
7+
``` ini
8+
9+
BenchmarkDotNet=v0.12.0, OS=Windows 10.0.19041
10+
Intel Core i7-7700 CPU 3.60GHz (Kaby Lake), 1 CPU, 8 logical and 4 physical cores
11+
.NET Core SDK=3.1.402
12+
[Host] : .NET Core 3.1.8 (CoreCLR 4.700.20.41105, CoreFX 4.700.20.41903), X64 RyuJIT
13+
DefaultJob : .NET Core 3.1.8 (CoreCLR 4.700.20.41105, CoreFX 4.700.20.41903), X64 RyuJIT
14+
15+
16+
```
17+
| Method | Mean | Error | StdDev | Ratio | Gen 0 | Gen 1 | Gen 2 | Allocated |
18+
|---------------------- |-----------:|---------:|---------:|------:|-------:|------:|------:|----------:|
19+
| ForSum | 613.3 ns | 1.19 ns | 1.06 ns | 0.10 | - | - | - | - |
20+
| SysEnumerableSum | 5,982.1 ns | 10.64 ns | 8.89 ns | 1.00 | 0.0076 | - | - | 32 B |
21+
| StructSum | 3,675.6 ns | 56.62 ns | 52.96 ns | 0.61 | 0.0076 | - | - | 32 B |
22+
| RefStructSum | 2,003.0 ns | 4.87 ns | 4.56 ns | 0.33 | 0.0076 | - | - | 32 B |
23+
| ZeroAllocStructSum | 2,275.9 ns | 42.85 ns | 35.79 ns | 0.38 | - | - | - | - |
24+
| ZeroAllocRefStructSum | 766.0 ns | 1.32 ns | 1.24 ns | 0.13 | - | - | - | - |
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
## ArrayOfClassSum
2+
3+
### Source
4+
[ArrayOfClassSum.cs](../../src/StructLinq.Benchmark/ArrayOfClassSum.cs)
5+
6+
### Results:
7+
``` ini
8+
9+
BenchmarkDotNet=v0.12.0, OS=Windows 10.0.19041
10+
Intel Core i7-7700 CPU 3.60GHz (Kaby Lake), 1 CPU, 8 logical and 4 physical cores
11+
.NET Core SDK=3.1.402
12+
[Host] : .NET Core 3.1.8 (CoreCLR 4.700.20.41105, CoreFX 4.700.20.41903), X64 RyuJIT
13+
DefaultJob : .NET Core 3.1.8 (CoreCLR 4.700.20.41105, CoreFX 4.700.20.41903), X64 RyuJIT
14+
15+
16+
```
17+
| Method | Mean | Error | StdDev | Ratio | Gen 0 | Gen 1 | Gen 2 | Allocated |
18+
|----------------- |-----------:|---------:|---------:|------:|-------:|------:|------:|----------:|
19+
| SysSum | 515.2 ns | 1.41 ns | 1.32 ns | 0.09 | - | - | - | - |
20+
| SysEnumerableSum | 5,782.8 ns | 18.35 ns | 17.16 ns | 1.00 | 0.0076 | - | - | 48 B |
21+
| StructSum | 1,745.9 ns | 2.49 ns | 2.33 ns | 0.30 | - | - | - | - |
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
## ArrayOfIntSum
2+
3+
### Source
4+
[ArrayOfIntSum.cs](../../src/StructLinq.Benchmark/ArrayOfIntSum.cs)
5+
6+
### Results:
7+
``` ini
8+
9+
BenchmarkDotNet=v0.12.0, OS=Windows 10.0.19041
10+
Intel Core i7-7700 CPU 3.60GHz (Kaby Lake), 1 CPU, 8 logical and 4 physical cores
11+
.NET Core SDK=3.1.402
12+
[Host] : .NET Core 3.1.8 (CoreCLR 4.700.20.41105, CoreFX 4.700.20.41903), X64 RyuJIT
13+
DefaultJob : .NET Core 3.1.8 (CoreCLR 4.700.20.41105, CoreFX 4.700.20.41903), X64 RyuJIT
14+
15+
16+
```
17+
| Method | Mean | Error | StdDev | Ratio | Gen 0 | Gen 1 | Gen 2 | Allocated |
18+
|----------------- |-----------:|--------:|--------:|------:|-------:|------:|------:|----------:|
19+
| SysSum | 585.0 ns | 1.34 ns | 1.26 ns | 0.14 | - | - | - | - |
20+
| SysEnumerableSum | 4,240.8 ns | 9.10 ns | 8.06 ns | 1.00 | 0.0076 | - | - | 32 B |
21+
| ConvertSum | 4,798.5 ns | 5.86 ns | 5.48 ns | 1.13 | 0.0076 | - | - | 32 B |
22+
| StructSum | 589.7 ns | 1.09 ns | 1.02 ns | 0.14 | - | - | - | - |
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
## ArraySelectCount
2+
3+
### Source
4+
[ArraySelectCount.cs](../../src/StructLinq.Benchmark/ArraySelectCount.cs)
5+
6+
### Results:
7+
``` ini
8+
9+
BenchmarkDotNet=v0.12.0, OS=Windows 10.0.19041
10+
Intel Core i7-7700 CPU 3.60GHz (Kaby Lake), 1 CPU, 8 logical and 4 physical cores
11+
.NET Core SDK=3.1.402
12+
[Host] : .NET Core 3.1.8 (CoreCLR 4.700.20.41105, CoreFX 4.700.20.41903), X64 RyuJIT
13+
DefaultJob : .NET Core 3.1.8 (CoreCLR 4.700.20.41105, CoreFX 4.700.20.41903), X64 RyuJIT
14+
15+
16+
```
17+
| Method | Mean | Error | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
18+
|-------------------- |---------:|---------:|---------:|------:|------:|------:|----------:|
19+
| Linq | 19.79 us | 0.029 us | 0.027 us | - | - | - | 48 B |
20+
| StructLinq | 15.27 us | 0.022 us | 0.021 us | - | - | - | 32 B |
21+
| StructLinqZeroAlloc | 13.49 us | 0.020 us | 0.018 us | - | - | - | - |
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
## ArrayWhereSelectSum
2+
3+
### Source
4+
[ArrayWhereSelectSum.cs](../../src/StructLinq.Benchmark/ArrayWhereSelectSum.cs)
5+
6+
### Results:
7+
``` ini
8+
9+
BenchmarkDotNet=v0.12.0, OS=Windows 10.0.19041
10+
Intel Core i7-7700 CPU 3.60GHz (Kaby Lake), 1 CPU, 8 logical and 4 physical cores
11+
.NET Core SDK=3.1.402
12+
[Host] : .NET Core 3.1.8 (CoreCLR 4.700.20.41105, CoreFX 4.700.20.41903), X64 RyuJIT
13+
DefaultJob : .NET Core 3.1.8 (CoreCLR 4.700.20.41105, CoreFX 4.700.20.41903), X64 RyuJIT
14+
15+
16+
```
17+
| Method | Mean | Error | StdDev | Ratio | Gen 0 | Gen 1 | Gen 2 | Allocated |
18+
|-------------------------------------- |---------:|---------:|---------:|------:|------:|------:|------:|----------:|
19+
| HandmadedCode | 12.61 us | 0.017 us | 0.016 us | 1.00 | - | - | - | - |
20+
| SysLinq | 45.15 us | 0.092 us | 0.086 us | 3.58 | - | - | - | 104 B |
21+
| StructRangeWhereSelectSumWithDelegate | 43.71 us | 0.148 us | 0.124 us | 3.47 | - | - | - | 48 B |
22+
| StructRangeWhereSelectSum | 15.21 us | 0.033 us | 0.031 us | 1.21 | - | - | - | - |
+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
## Contains
2+
3+
### Source
4+
[Contains.cs](../../src/StructLinq.Benchmark/Contains.cs)
5+
6+
### Results:
7+
``` ini
8+
9+
BenchmarkDotNet=v0.12.0, OS=Windows 10.0.19041
10+
Intel Core i7-7700 CPU 3.60GHz (Kaby Lake), 1 CPU, 8 logical and 4 physical cores
11+
.NET Core SDK=3.1.402
12+
[Host] : .NET Core 3.1.8 (CoreCLR 4.700.20.41105, CoreFX 4.700.20.41903), X64 RyuJIT
13+
DefaultJob : .NET Core 3.1.8 (CoreCLR 4.700.20.41105, CoreFX 4.700.20.41903), X64 RyuJIT
14+
15+
16+
```
17+
| Method | Mean | Error | StdDev | Ratio | Gen 0 | Gen 1 | Gen 2 | Allocated |
18+
|-------------------- |---------:|----------:|----------:|------:|-------:|------:|------:|----------:|
19+
| Linq | 1.174 us | 0.0023 us | 0.0021 us | 1.00 | - | - | - | - |
20+
| Array | 1.213 us | 0.0023 us | 0.0020 us | 1.03 | - | - | - | - |
21+
| StructLinq | 2.146 us | 0.0038 us | 0.0035 us | 1.83 | 0.0076 | - | - | 32 B |
22+
| StructLinqZeroAlloc | 2.818 us | 0.0045 us | 0.0042 us | 2.40 | - | - | - | - |
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
## ContainsOnBigStruct
2+
3+
### Source
4+
[ContainsOnBigStruct.cs](../../src/StructLinq.Benchmark/ContainsOnBigStruct.cs)
5+
6+
### Results:
7+
``` ini
8+
9+
BenchmarkDotNet=v0.12.0, OS=Windows 10.0.19041
10+
Intel Core i7-7700 CPU 3.60GHz (Kaby Lake), 1 CPU, 8 logical and 4 physical cores
11+
.NET Core SDK=3.1.402
12+
[Host] : .NET Core 3.1.8 (CoreCLR 4.700.20.41105, CoreFX 4.700.20.41903), X64 RyuJIT
13+
DefaultJob : .NET Core 3.1.8 (CoreCLR 4.700.20.41105, CoreFX 4.700.20.41903), X64 RyuJIT
14+
15+
16+
```
17+
| Method | Mean | Error | StdDev | Ratio | RatioSD | Gen 0 | Gen 1 | Gen 2 | Allocated |
18+
|----------------------------------------- |----------:|----------:|----------:|------:|--------:|------:|------:|------:|----------:|
19+
| Linq | 5.591 us | 0.0063 us | 0.0055 us | 1.00 | 0.00 | - | - | - | - |
20+
| Array | 5.571 us | 0.0065 us | 0.0061 us | 1.00 | 0.00 | - | - | - | - |
21+
| StructLinq | 25.079 us | 0.0372 us | 0.0348 us | 4.49 | 0.01 | - | - | - | - |
22+
| RefStructLinq | 31.081 us | 0.0619 us | 0.0548 us | 5.56 | 0.01 | - | - | - | - |
23+
| StructLinqWithCustomComparer | 16.231 us | 0.3306 us | 0.6449 us | 2.80 | 0.08 | - | - | - | - |
24+
| RefStructLinqZeroAllocwithCustomComparer | 3.563 us | 0.0051 us | 0.0045 us | 0.64 | 0.00 | - | - | - | - |
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
## ContainsWhere
2+
3+
### Source
4+
[ContainsWhere.cs](../../src/StructLinq.Benchmark/ContainsWhere.cs)
5+
6+
### Results:
7+
``` ini
8+
9+
BenchmarkDotNet=v0.12.0, OS=Windows 10.0.19041
10+
Intel Core i7-7700 CPU 3.60GHz (Kaby Lake), 1 CPU, 8 logical and 4 physical cores
11+
.NET Core SDK=3.1.402
12+
[Host] : .NET Core 3.1.8 (CoreCLR 4.700.20.41105, CoreFX 4.700.20.41903), X64 RyuJIT
13+
DefaultJob : .NET Core 3.1.8 (CoreCLR 4.700.20.41105, CoreFX 4.700.20.41903), X64 RyuJIT
14+
15+
16+
```
17+
| Method | Mean | Error | StdDev | Ratio | Gen 0 | Gen 1 | Gen 2 | Allocated |
18+
|-------------------- |---------:|---------:|---------:|------:|------:|------:|------:|----------:|
19+
| Linq | 31.00 us | 0.044 us | 0.037 us | 1.00 | - | - | - | 48 B |
20+
| Array | 31.04 us | 0.067 us | 0.060 us | 1.00 | - | - | - | 48 B |
21+
| StructLinq | 18.29 us | 0.016 us | 0.013 us | 0.59 | - | - | - | 64 B |
22+
| StructLinqZeroAlloc | 18.28 us | 0.018 us | 0.016 us | 0.59 | - | - | - | - |
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
## ContainsWhereOnBigStruct
2+
3+
### Source
4+
[ContainsWhereOnBigStruct.cs](../../src/StructLinq.Benchmark/ContainsWhereOnBigStruct.cs)
5+
6+
### Results:
7+
``` ini
8+
9+
BenchmarkDotNet=v0.12.0, OS=Windows 10.0.19041
10+
Intel Core i7-7700 CPU 3.60GHz (Kaby Lake), 1 CPU, 8 logical and 4 physical cores
11+
.NET Core SDK=3.1.402
12+
[Host] : .NET Core 3.1.8 (CoreCLR 4.700.20.41105, CoreFX 4.700.20.41903), X64 RyuJIT
13+
DefaultJob : .NET Core 3.1.8 (CoreCLR 4.700.20.41105, CoreFX 4.700.20.41903), X64 RyuJIT
14+
15+
16+
```
17+
| Method | Mean | Error | StdDev | Ratio | Gen 0 | Gen 1 | Gen 2 | Allocated |
18+
|----------------------------------------- |---------:|---------:|---------:|------:|------:|------:|------:|----------:|
19+
| Linq | 92.66 us | 0.179 us | 0.168 us | 1.00 | - | - | - | 81 B |
20+
| Array | 92.82 us | 0.166 us | 0.155 us | 1.00 | - | - | - | 80 B |
21+
| StructLinq | 43.65 us | 0.573 us | 0.508 us | 0.47 | - | - | - | 1 B |
22+
| RefStructLinq | 48.39 us | 0.074 us | 0.069 us | 0.52 | - | - | - | - |
23+
| StructLinqWithCustomComparer | 34.24 us | 0.583 us | 0.517 us | 0.37 | - | - | - | - |
24+
| RefStructLinqZeroAllocwithCustomComparer | 21.18 us | 0.059 us | 0.055 us | 0.23 | - | - | - | - |
+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
## Dictionary
2+
3+
### Source
4+
[Dictionary.cs](../../src/StructLinq.Benchmark/Dictionary.cs)
5+
6+
### Results:
7+
``` ini
8+
9+
BenchmarkDotNet=v0.12.0, OS=Windows 10.0.19041
10+
Intel Core i7-7700 CPU 3.60GHz (Kaby Lake), 1 CPU, 8 logical and 4 physical cores
11+
.NET Core SDK=3.1.402
12+
[Host] : .NET Core 3.1.8 (CoreCLR 4.700.20.41105, CoreFX 4.700.20.41903), X64 RyuJIT
13+
Job-ILXHKQ : .NET Framework 4.8 (4.8.4220.0), X64 RyuJIT
14+
Job-DKIKQP : .NET Core 3.1.8 (CoreCLR 4.700.20.41105, CoreFX 4.700.20.41903), X64 RyuJIT
15+
16+
17+
```
18+
| Method | Runtime | ItemCount | Mean | Error | StdDev | Ratio | Gen 0 | Gen 1 | Gen 2 | Allocated |
19+
|----------- |-------------- |---------- |-------------:|-----------:|-----------:|------:|------:|------:|------:|----------:|
20+
| **LINQ** | **.NET 4.8** | **2** | **27.489 ns** | **0.0391 ns** | **0.0366 ns** | **1.00** | **-** | **-** | **-** | **-** |
21+
| StructLINQ | .NET 4.8 | 2 | 4.237 ns | 0.0116 ns | 0.0108 ns | 0.15 | - | - | - | - |
22+
| LINQ | .NET Core 3.1 | 2 | 26.421 ns | 0.0404 ns | 0.0338 ns | 0.96 | - | - | - | - |
23+
| StructLINQ | .NET Core 3.1 | 2 | 5.720 ns | 0.0144 ns | 0.0134 ns | 0.21 | - | - | - | - |
24+
| | | | | | | | | | | |
25+
| **LINQ** | **.NET 4.8** | **100** | **473.446 ns** | **0.8406 ns** | **0.7863 ns** | **1.00** | **-** | **-** | **-** | **-** |
26+
| StructLINQ | .NET 4.8 | 100 | 127.077 ns | 0.1941 ns | 0.1621 ns | 0.27 | - | - | - | - |
27+
| LINQ | .NET Core 3.1 | 100 | 417.060 ns | 0.8111 ns | 0.7587 ns | 0.88 | - | - | - | - |
28+
| StructLINQ | .NET Core 3.1 | 100 | 137.737 ns | 0.1382 ns | 0.1154 ns | 0.29 | - | - | - | - |
29+
| | | | | | | | | | | |
30+
| **LINQ** | **.NET 4.8** | **1000** | **4,729.685 ns** | **6.6869 ns** | **6.2549 ns** | **1.00** | **-** | **-** | **-** | **-** |
31+
| StructLINQ | .NET 4.8 | 1000 | 1,306.087 ns | 3.2112 ns | 3.0037 ns | 0.28 | - | - | - | - |
32+
| LINQ | .NET Core 3.1 | 1000 | 3,980.738 ns | 12.6089 ns | 11.1774 ns | 0.84 | - | - | - | - |
33+
| StructLINQ | .NET Core 3.1 | 1000 | 1,319.680 ns | 2.4587 ns | 2.2998 ns | 0.28 | - | - | - | - |
+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
## Distinct
2+
3+
### Source
4+
[Distinct.cs](../../src/StructLinq.Benchmark/Distinct.cs)
5+
6+
### Results:
7+
``` ini
8+
9+
BenchmarkDotNet=v0.12.0, OS=Windows 10.0.19041
10+
Intel Core i7-7700 CPU 3.60GHz (Kaby Lake), 1 CPU, 8 logical and 4 physical cores
11+
.NET Core SDK=3.1.402
12+
[Host] : .NET Core 3.1.8 (CoreCLR 4.700.20.41105, CoreFX 4.700.20.41903), X64 RyuJIT
13+
DefaultJob : .NET Core 3.1.8 (CoreCLR 4.700.20.41105, CoreFX 4.700.20.41903), X64 RyuJIT
14+
15+
16+
```
17+
| Method | Mean | Error | StdDev | Ratio | Gen 0 | Gen 1 | Gen 2 | Allocated |
18+
|----------------------- |---------:|--------:|--------:|------:|--------:|--------:|--------:|----------:|
19+
| Linq | 506.4 us | 1.70 us | 1.59 us | 1.00 | 90.8203 | 90.8203 | 90.8203 | 524785 B |
20+
| StructLinq | 195.3 us | 0.41 us | 0.39 us | 0.39 | - | - | - | 32 B |
21+
| StructLinqZeroAlloc | 204.1 us | 0.46 us | 0.43 us | 0.40 | - | - | - | - |
22+
| StructLinqZeroAllocSum | 207.7 us | 0.37 us | 0.33 us | 0.41 | - | - | - | 1 B |
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
## DistinctOnBigStruct
2+
3+
### Source
4+
[DistinctOnBigStruct.cs](../../src/StructLinq.Benchmark/DistinctOnBigStruct.cs)
5+
6+
### Results:
7+
``` ini
8+
9+
BenchmarkDotNet=v0.12.0, OS=Windows 10.0.19041
10+
Intel Core i7-7700 CPU 3.60GHz (Kaby Lake), 1 CPU, 8 logical and 4 physical cores
11+
.NET Core SDK=3.1.402
12+
[Host] : .NET Core 3.1.8 (CoreCLR 4.700.20.41105, CoreFX 4.700.20.41903), X64 RyuJIT
13+
DefaultJob : .NET Core 3.1.8 (CoreCLR 4.700.20.41105, CoreFX 4.700.20.41903), X64 RyuJIT
14+
15+
16+
```
17+
| Method | Mean | Error | StdDev | Ratio | Gen 0 | Gen 1 | Gen 2 | Allocated |
18+
|----------------- |---------:|--------:|--------:|------:|---------:|---------:|---------:|----------:|
19+
| Linq | 724.2 us | 7.34 us | 6.86 us | 1.00 | 383.7891 | 351.5625 | 350.5859 | 1572870 B |
20+
| StructLinq | 362.6 us | 1.71 us | 1.60 us | 0.50 | - | - | - | 1 B |
21+
| RefStructLinqSum | 253.2 us | 0.85 us | 0.80 us | 0.35 | - | - | - | 1 B |

0 commit comments

Comments
 (0)