Skip to content

Latest commit

 

History

History
62 lines (56 loc) · 8.38 KB

Range.RangeSelect.md

File metadata and controls

62 lines (56 loc) · 8.38 KB

Range.RangeSelect

Source

RangeSelect.cs

References:

Results:

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 Start Count Mean Error StdDev Ratio RatioSD Gen 0 Allocated
ForLoop .NET 6 Empty .NET 6.0 0 100 47.86 ns 0.079 ns 0.070 ns baseline - -
Linq .NET 6 Empty .NET 6.0 0 100 678.91 ns 1.036 ns 0.865 ns 14.18x slower 0.03x 0.0420 88 B
LinqFaster .NET 6 Empty .NET 6.0 0 100 337.53 ns 2.527 ns 2.240 ns 7.05x slower 0.05x 0.4053 848 B
LinqFaster_SIMD .NET 6 Empty .NET 6.0 0 100 170.49 ns 2.533 ns 2.370 ns 3.56x slower 0.05x 0.4053 848 B
LinqAF .NET 6 Empty .NET 6.0 0 100 253.77 ns 0.329 ns 0.291 ns 5.30x slower 0.01x - -
StructLinq .NET 6 Empty .NET 6.0 0 100 206.27 ns 0.259 ns 0.202 ns 4.31x slower 0.01x 0.0114 24 B
StructLinq_ValueDelegate .NET 6 Empty .NET 6.0 0 100 177.22 ns 0.120 ns 0.100 ns 3.70x slower 0.01x - -
Hyperlinq .NET 6 Empty .NET 6.0 0 100 221.38 ns 0.285 ns 0.253 ns 4.63x slower 0.01x - -
Hyperlinq_ValueDelegate .NET 6 Empty .NET 6.0 0 100 183.87 ns 0.201 ns 0.188 ns 3.84x slower 0.01x - -
ForLoop .NET 6 PGO DOTNET_ReadyToRun=0,DOTNET_TC_QuickJitForLoops=1,DOTNET_TieredPGO=1 .NET 6.0 0 100 47.22 ns 0.124 ns 0.110 ns baseline - -
Linq .NET 6 PGO DOTNET_ReadyToRun=0,DOTNET_TC_QuickJitForLoops=1,DOTNET_TieredPGO=1 .NET 6.0 0 100 409.15 ns 0.698 ns 0.619 ns 8.66x slower 0.03x 0.0420 88 B
LinqFaster .NET 6 PGO DOTNET_ReadyToRun=0,DOTNET_TC_QuickJitForLoops=1,DOTNET_TieredPGO=1 .NET 6.0 0 100 367.28 ns 3.311 ns 2.765 ns 7.78x slower 0.05x 0.4053 848 B
LinqFaster_SIMD .NET 6 PGO DOTNET_ReadyToRun=0,DOTNET_TC_QuickJitForLoops=1,DOTNET_TieredPGO=1 .NET 6.0 0 100 174.67 ns 2.664 ns 2.491 ns 3.70x slower 0.06x 0.4053 848 B
LinqAF .NET 6 PGO DOTNET_ReadyToRun=0,DOTNET_TC_QuickJitForLoops=1,DOTNET_TieredPGO=1 .NET 6.0 0 100 233.52 ns 0.525 ns 0.465 ns 4.95x slower 0.01x - -
StructLinq .NET 6 PGO DOTNET_ReadyToRun=0,DOTNET_TC_QuickJitForLoops=1,DOTNET_TieredPGO=1 .NET 6.0 0 100 194.59 ns 0.158 ns 0.148 ns 4.12x slower 0.01x 0.0114 24 B
StructLinq_ValueDelegate .NET 6 PGO DOTNET_ReadyToRun=0,DOTNET_TC_QuickJitForLoops=1,DOTNET_TieredPGO=1 .NET 6.0 0 100 179.56 ns 0.176 ns 0.164 ns 3.80x slower 0.01x - -
Hyperlinq .NET 6 PGO DOTNET_ReadyToRun=0,DOTNET_TC_QuickJitForLoops=1,DOTNET_TieredPGO=1 .NET 6.0 0 100 248.76 ns 0.098 ns 0.087 ns 5.27x slower 0.01x - -
Hyperlinq_ValueDelegate .NET 6 PGO DOTNET_ReadyToRun=0,DOTNET_TC_QuickJitForLoops=1,DOTNET_TieredPGO=1 .NET 6.0 0 100 186.03 ns 0.113 ns 0.106 ns 3.94x slower 0.01x - -
ForLoop .NET Core 3.1 Empty .NET Core 3.1 0 100 46.68 ns 0.242 ns 0.214 ns baseline - -
Linq .NET Core 3.1 Empty .NET Core 3.1 0 100 662.43 ns 4.720 ns 3.941 ns 14.19x slower 0.09x 0.0420 88 B
LinqFaster .NET Core 3.1 Empty .NET Core 3.1 0 100 371.06 ns 1.546 ns 1.291 ns 7.95x slower 0.05x 0.4053 848 B
LinqFaster_SIMD .NET Core 3.1 Empty .NET Core 3.1 0 100 182.56 ns 0.495 ns 0.386 ns 3.91x slower 0.02x 0.4053 848 B
LinqAF .NET Core 3.1 Empty .NET Core 3.1 0 100 567.00 ns 9.539 ns 13.057 ns 12.32x slower 0.29x - -
StructLinq .NET Core 3.1 Empty .NET Core 3.1 0 100 331.23 ns 0.503 ns 0.420 ns 7.10x slower 0.04x 0.0114 24 B
StructLinq_ValueDelegate .NET Core 3.1 Empty .NET Core 3.1 0 100 192.40 ns 0.120 ns 0.100 ns 4.12x slower 0.02x - -
Hyperlinq .NET Core 3.1 Empty .NET Core 3.1 0 100 332.98 ns 0.205 ns 0.192 ns 7.13x slower 0.03x - -
Hyperlinq_ValueDelegate .NET Core 3.1 Empty .NET Core 3.1 0 100 196.50 ns 0.223 ns 0.198 ns 4.21x slower 0.02x - -