ImmutableArray.Int32.ImmutableArrayInt32Where
ImmutableArrayInt32Where.cs
BenchmarkDotNet =v0.13.1, OS =macOS Catalina 10.15.7 (19H1519) [Darwin 19.6.0]
Intel Core i5-7360U CPU 2.30GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores
.NET SDK =6.0.100
[Host] : .NET Core 3.1.20 (CoreCLR 4.700.21.47003, CoreFX 4.700.21.47101), X64 RyuJIT
.NET 6 : .NET 6.0.0 (6.0.21.52210), X64 RyuJIT
.NET 6 PGO : .NET 6.0.0 (6.0.21.52210), X64 RyuJIT
.NET Core 3.1 : .NET Core 3.1.20 (CoreCLR 4.700.21.47003, CoreFX 4.700.21.47101), X64 RyuJIT
Method
Job
EnvironmentVariables
Runtime
Count
Mean
Error
StdDev
Ratio
RatioSD
Gen 0
Allocated
ForLoop
.NET 6
Empty
.NET 6.0
100
71.87 ns
0.777 ns
0.689 ns
baseline
-
-
ForeachLoop
.NET 6
Empty
.NET 6.0
100
72.36 ns
0.559 ns
0.523 ns
1.01x slower
0.01x
-
-
Linq
.NET 6
Empty
.NET 6.0
100
490.40 ns
2.351 ns
2.084 ns
6.82x slower
0.07x
0.0229
48 B
LinqFasterer
.NET 6
Empty
.NET 6.0
100
682.35 ns
0.663 ns
0.588 ns
9.49x slower
0.09x
0.3443
720 B
LinqOptimizer
.NET 6
Empty
.NET 6.0
100
2,254.82 ns
8.181 ns
7.252 ns
31.38x slower
0.32x
4.1656
8,714 B
Streams
.NET 6
Empty
.NET 6.0
100
2,241.12 ns
21.652 ns
20.253 ns
31.20x slower
0.38x
0.2899
608 B
StructLinq
.NET 6
Empty
.NET 6.0
100
362.17 ns
5.873 ns
5.493 ns
5.04x slower
0.11x
0.0153
32 B
StructLinq_ValueDelegate
.NET 6
Empty
.NET 6.0
100
195.85 ns
0.087 ns
0.073 ns
2.72x slower
0.03x
-
-
Hyperlinq
.NET 6
Empty
.NET 6.0
100
345.81 ns
6.863 ns
8.169 ns
4.77x slower
0.12x
-
-
Hyperlinq_ValueDelegate
.NET 6
Empty
.NET 6.0
100
220.55 ns
0.137 ns
0.114 ns
3.07x slower
0.03x
-
-
ForLoop
.NET 6 PGO
DOTNET_ReadyToRun=0,DOTNET_TC_QuickJitForLoops=1,DOTNET_TieredPGO=1
.NET 6.0
100
72.48 ns
0.577 ns
0.539 ns
baseline
-
-
ForeachLoop
.NET 6 PGO
DOTNET_ReadyToRun=0,DOTNET_TC_QuickJitForLoops=1,DOTNET_TieredPGO=1
.NET 6.0
100
72.58 ns
0.705 ns
0.625 ns
1.00x slower
0.01x
-
-
Linq
.NET 6 PGO
DOTNET_ReadyToRun=0,DOTNET_TC_QuickJitForLoops=1,DOTNET_TieredPGO=1
.NET 6.0
100
348.37 ns
0.344 ns
0.268 ns
4.82x slower
0.03x
0.0229
48 B
LinqFasterer
.NET 6 PGO
DOTNET_ReadyToRun=0,DOTNET_TC_QuickJitForLoops=1,DOTNET_TieredPGO=1
.NET 6.0
100
422.10 ns
0.974 ns
0.814 ns
5.83x slower
0.04x
0.3443
720 B
LinqOptimizer
.NET 6 PGO
DOTNET_ReadyToRun=0,DOTNET_TC_QuickJitForLoops=1,DOTNET_TieredPGO=1
.NET 6.0
100
2,062.23 ns
5.737 ns
5.366 ns
28.45x slower
0.22x
4.1656
8,714 B
Streams
.NET 6 PGO
DOTNET_ReadyToRun=0,DOTNET_TC_QuickJitForLoops=1,DOTNET_TieredPGO=1
.NET 6.0
100
1,277.53 ns
3.986 ns
3.729 ns
17.63x slower
0.14x
0.2899
608 B
StructLinq
.NET 6 PGO
DOTNET_ReadyToRun=0,DOTNET_TC_QuickJitForLoops=1,DOTNET_TieredPGO=1
.NET 6.0
100
359.59 ns
6.282 ns
5.876 ns
4.96x slower
0.09x
0.0153
32 B
StructLinq_ValueDelegate
.NET 6 PGO
DOTNET_ReadyToRun=0,DOTNET_TC_QuickJitForLoops=1,DOTNET_TieredPGO=1
.NET 6.0
100
197.82 ns
0.648 ns
0.606 ns
2.73x slower
0.02x
-
-
Hyperlinq
.NET 6 PGO
DOTNET_ReadyToRun=0,DOTNET_TC_QuickJitForLoops=1,DOTNET_TieredPGO=1
.NET 6.0
100
322.99 ns
6.314 ns
6.484 ns
4.46x slower
0.10x
-
-
Hyperlinq_ValueDelegate
.NET 6 PGO
DOTNET_ReadyToRun=0,DOTNET_TC_QuickJitForLoops=1,DOTNET_TieredPGO=1
.NET 6.0
100
222.72 ns
0.202 ns
0.189 ns
3.07x slower
0.02x
-
-
ForLoop
.NET Core 3.1
Empty
.NET Core 3.1
100
66.28 ns
0.085 ns
0.075 ns
baseline
-
-
ForeachLoop
.NET Core 3.1
Empty
.NET Core 3.1
100
73.96 ns
0.039 ns
0.035 ns
1.12x slower
0.00x
-
-
Linq
.NET Core 3.1
Empty
.NET Core 3.1
100
553.35 ns
3.037 ns
2.536 ns
8.35x slower
0.05x
0.0229
48 B
LinqFasterer
.NET Core 3.1
Empty
.NET Core 3.1
100
700.50 ns
1.360 ns
1.135 ns
10.57x slower
0.02x
0.3443
720 B
LinqOptimizer
.NET Core 3.1
Empty
.NET Core 3.1
100
2,340.21 ns
9.386 ns
8.779 ns
35.32x slower
0.14x
4.1733
8,744 B
Streams
.NET Core 3.1
Empty
.NET Core 3.1
100
2,242.39 ns
2.298 ns
2.150 ns
33.83x slower
0.06x
0.2899
608 B
StructLinq
.NET Core 3.1
Empty
.NET Core 3.1
100
844.13 ns
2.165 ns
1.919 ns
12.74x slower
0.03x
0.0153
32 B
StructLinq_ValueDelegate
.NET Core 3.1
Empty
.NET Core 3.1
100
722.32 ns
2.774 ns
2.317 ns
10.90x slower
0.04x
-
-
Hyperlinq
.NET Core 3.1
Empty
.NET Core 3.1
100
395.27 ns
3.143 ns
2.940 ns
5.96x slower
0.05x
-
-
Hyperlinq_ValueDelegate
.NET Core 3.1
Empty
.NET Core 3.1
100
230.78 ns
0.330 ns
0.275 ns
3.48x slower
0.01x
-
-