Enumerable.Int32.EnumerableInt32Distinct
EnumerableInt32Distinct.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
ForeachLoop
.NET 6
Empty
.NET 6.0
100
1,154.6 ns
1.63 ns
1.36 ns
baseline
0.0992
208 B
Linq
.NET 6
Empty
.NET 6.0
100
1,209.7 ns
2.17 ns
2.03 ns
1.05x slower
0.00x
0.1602
336 B
LinqAF
.NET 6
Empty
.NET 6.0
100
2,094.9 ns
6.90 ns
6.11 ns
1.81x slower
0.01x
1.2512
2,624 B
StructLinq
.NET 6
Empty
.NET 6.0
100
1,168.4 ns
2.02 ns
1.89 ns
1.01x slower
0.00x
0.0305
64 B
StructLinq_ValueDelegate
.NET 6
Empty
.NET 6.0
100
1,160.1 ns
1.60 ns
1.50 ns
1.00x slower
0.00x
0.0191
40 B
Hyperlinq
.NET 6
Empty
.NET 6.0
100
1,149.9 ns
2.45 ns
2.04 ns
1.00x faster
0.00x
0.0191
40 B
ForeachLoop
.NET 6 PGO
DOTNET_ReadyToRun=0,DOTNET_TC_QuickJitForLoops=1,DOTNET_TieredPGO=1
.NET 6.0
100
733.0 ns
2.18 ns
1.93 ns
baseline
0.0992
208 B
Linq
.NET 6 PGO
DOTNET_ReadyToRun=0,DOTNET_TC_QuickJitForLoops=1,DOTNET_TieredPGO=1
.NET 6.0
100
808.8 ns
7.58 ns
5.92 ns
1.10x slower
0.01x
0.1602
336 B
LinqAF
.NET 6 PGO
DOTNET_ReadyToRun=0,DOTNET_TC_QuickJitForLoops=1,DOTNET_TieredPGO=1
.NET 6.0
100
1,571.4 ns
5.57 ns
4.94 ns
2.14x slower
0.01x
1.2531
2,624 B
StructLinq
.NET 6 PGO
DOTNET_ReadyToRun=0,DOTNET_TC_QuickJitForLoops=1,DOTNET_TieredPGO=1
.NET 6.0
100
728.0 ns
3.09 ns
2.41 ns
1.01x faster
0.00x
0.0305
64 B
StructLinq_ValueDelegate
.NET 6 PGO
DOTNET_ReadyToRun=0,DOTNET_TC_QuickJitForLoops=1,DOTNET_TieredPGO=1
.NET 6.0
100
727.0 ns
3.30 ns
2.75 ns
1.01x faster
0.00x
0.0191
40 B
Hyperlinq
.NET 6 PGO
DOTNET_ReadyToRun=0,DOTNET_TC_QuickJitForLoops=1,DOTNET_TieredPGO=1
.NET 6.0
100
764.6 ns
1.50 ns
1.33 ns
1.04x slower
0.00x
0.0191
40 B
ForeachLoop
.NET Core 3.1
Empty
.NET Core 3.1
100
1,682.6 ns
3.83 ns
3.20 ns
baseline
0.0992
208 B
Linq
.NET Core 3.1
Empty
.NET Core 3.1
100
1,681.7 ns
2.71 ns
2.40 ns
1.00x faster
0.00x
0.1526
320 B
LinqAF
.NET Core 3.1
Empty
.NET Core 3.1
100
2,556.5 ns
7.14 ns
6.33 ns
1.52x slower
0.01x
1.2512
2,624 B
StructLinq
.NET Core 3.1
Empty
.NET Core 3.1
100
1,322.4 ns
3.69 ns
3.27 ns
1.27x faster
0.00x
0.0305
64 B
StructLinq_ValueDelegate
.NET Core 3.1
Empty
.NET Core 3.1
100
1,204.3 ns
0.87 ns
0.77 ns
1.40x faster
0.00x
0.0191
40 B
Hyperlinq
.NET Core 3.1
Empty
.NET Core 3.1
100
1,329.1 ns
1.92 ns
1.50 ns
1.27x faster
0.00x
0.0191
40 B