ForLoop |
.NET 6 |
Empty |
.NET 6.0 |
100 |
436.86 ns |
3.650 ns |
3.236 ns |
baseline |
|
0.5655 |
1,184 B |
ForeachLoop |
.NET 6 |
Empty |
.NET 6.0 |
100 |
404.54 ns |
0.909 ns |
0.806 ns |
1.08x faster |
0.01x |
0.5660 |
1,184 B |
Linq |
.NET 6 |
Empty |
.NET 6.0 |
100 |
352.62 ns |
0.427 ns |
0.378 ns |
1.24x faster |
0.01x |
0.2522 |
528 B |
LinqFaster |
.NET 6 |
Empty |
.NET 6.0 |
100 |
393.81 ns |
0.808 ns |
0.756 ns |
1.11x faster |
0.01x |
0.4358 |
912 B |
LinqFasterer |
.NET 6 |
Empty |
.NET 6.0 |
100 |
362.03 ns |
0.979 ns |
0.867 ns |
1.21x faster |
0.01x |
0.6232 |
1,304 B |
LinqAF |
.NET 6 |
Empty |
.NET 6.0 |
100 |
797.73 ns |
1.066 ns |
0.945 ns |
1.83x slower |
0.01x |
0.5655 |
1,184 B |
LinqOptimizer |
.NET 6 |
Empty |
.NET 6.0 |
100 |
2,332.06 ns |
12.335 ns |
11.538 ns |
5.34x slower |
0.05x |
4.4518 |
9,330 B |
Streams |
.NET 6 |
Empty |
.NET 6.0 |
100 |
1,533.54 ns |
2.018 ns |
1.789 ns |
3.51x slower |
0.03x |
0.7534 |
1,576 B |
StructLinq |
.NET 6 |
Empty |
.NET 6.0 |
100 |
307.41 ns |
0.560 ns |
0.524 ns |
1.42x faster |
0.01x |
0.2484 |
520 B |
StructLinq_ValueDelegate |
.NET 6 |
Empty |
.NET 6.0 |
100 |
155.04 ns |
0.654 ns |
0.546 ns |
2.82x faster |
0.02x |
0.2370 |
496 B |
Hyperlinq |
.NET 6 |
Empty |
.NET 6.0 |
100 |
266.32 ns |
0.574 ns |
0.537 ns |
1.64x faster |
0.01x |
0.2179 |
456 B |
Hyperlinq_ValueDelegate |
.NET 6 |
Empty |
.NET 6.0 |
100 |
139.09 ns |
0.206 ns |
0.161 ns |
3.14x faster |
0.03x |
0.2179 |
456 B |
Hyperlinq_SIMD |
.NET 6 |
Empty |
.NET 6.0 |
100 |
106.79 ns |
0.297 ns |
0.264 ns |
4.09x faster |
0.03x |
0.2180 |
456 B |
Hyperlinq_ValueDelegate_SIMD |
.NET 6 |
Empty |
.NET 6.0 |
100 |
70.55 ns |
0.127 ns |
0.113 ns |
6.19x faster |
0.05x |
0.2180 |
456 B |
Faslinq |
.NET 6 |
Empty |
.NET 6.0 |
100 |
499.94 ns |
1.359 ns |
1.134 ns |
1.14x slower |
0.01x |
0.5655 |
1,184 B |
|
|
|
|
|
|
|
|
|
|
|
|
ForLoop |
.NET 6 PGO |
DOTNET_ReadyToRun=0,DOTNET_TC_QuickJitForLoops=1,DOTNET_TieredPGO=1 |
.NET 6.0 |
100 |
373.64 ns |
1.418 ns |
1.257 ns |
baseline |
|
0.5660 |
1,184 B |
ForeachLoop |
.NET 6 PGO |
DOTNET_ReadyToRun=0,DOTNET_TC_QuickJitForLoops=1,DOTNET_TieredPGO=1 |
.NET 6.0 |
100 |
383.72 ns |
0.861 ns |
0.764 ns |
1.03x slower |
0.00x |
0.5660 |
1,184 B |
Linq |
.NET 6 PGO |
DOTNET_ReadyToRun=0,DOTNET_TC_QuickJitForLoops=1,DOTNET_TieredPGO=1 |
.NET 6.0 |
100 |
331.51 ns |
1.089 ns |
0.910 ns |
1.13x faster |
0.01x |
0.2522 |
528 B |
LinqFaster |
.NET 6 PGO |
DOTNET_ReadyToRun=0,DOTNET_TC_QuickJitForLoops=1,DOTNET_TieredPGO=1 |
.NET 6.0 |
100 |
358.55 ns |
0.372 ns |
0.310 ns |
1.04x faster |
0.00x |
0.4358 |
912 B |
LinqFasterer |
.NET 6 PGO |
DOTNET_ReadyToRun=0,DOTNET_TC_QuickJitForLoops=1,DOTNET_TieredPGO=1 |
.NET 6.0 |
100 |
353.79 ns |
0.881 ns |
0.736 ns |
1.06x faster |
0.00x |
0.6232 |
1,304 B |
LinqAF |
.NET 6 PGO |
DOTNET_ReadyToRun=0,DOTNET_TC_QuickJitForLoops=1,DOTNET_TieredPGO=1 |
.NET 6.0 |
100 |
678.26 ns |
1.996 ns |
1.769 ns |
1.82x slower |
0.01x |
0.5655 |
1,184 B |
LinqOptimizer |
.NET 6 PGO |
DOTNET_ReadyToRun=0,DOTNET_TC_QuickJitForLoops=1,DOTNET_TieredPGO=1 |
.NET 6.0 |
100 |
2,366.84 ns |
7.564 ns |
6.705 ns |
6.33x slower |
0.03x |
4.4518 |
9,330 B |
Streams |
.NET 6 PGO |
DOTNET_ReadyToRun=0,DOTNET_TC_QuickJitForLoops=1,DOTNET_TieredPGO=1 |
.NET 6.0 |
100 |
1,397.61 ns |
1.799 ns |
1.404 ns |
3.74x slower |
0.01x |
0.7534 |
1,576 B |
StructLinq |
.NET 6 PGO |
DOTNET_ReadyToRun=0,DOTNET_TC_QuickJitForLoops=1,DOTNET_TieredPGO=1 |
.NET 6.0 |
100 |
296.72 ns |
1.174 ns |
1.041 ns |
1.26x faster |
0.01x |
0.2484 |
520 B |
StructLinq_ValueDelegate |
.NET 6 PGO |
DOTNET_ReadyToRun=0,DOTNET_TC_QuickJitForLoops=1,DOTNET_TieredPGO=1 |
.NET 6.0 |
100 |
153.87 ns |
2.893 ns |
4.055 ns |
2.39x faster |
0.06x |
0.2370 |
496 B |
Hyperlinq |
.NET 6 PGO |
DOTNET_ReadyToRun=0,DOTNET_TC_QuickJitForLoops=1,DOTNET_TieredPGO=1 |
.NET 6.0 |
100 |
313.79 ns |
0.542 ns |
0.453 ns |
1.19x faster |
0.00x |
0.2179 |
456 B |
Hyperlinq_ValueDelegate |
.NET 6 PGO |
DOTNET_ReadyToRun=0,DOTNET_TC_QuickJitForLoops=1,DOTNET_TieredPGO=1 |
.NET 6.0 |
100 |
143.92 ns |
0.425 ns |
0.355 ns |
2.60x faster |
0.01x |
0.2179 |
456 B |
Hyperlinq_SIMD |
.NET 6 PGO |
DOTNET_ReadyToRun=0,DOTNET_TC_QuickJitForLoops=1,DOTNET_TieredPGO=1 |
.NET 6.0 |
100 |
106.11 ns |
0.997 ns |
0.933 ns |
3.52x faster |
0.03x |
0.2180 |
456 B |
Hyperlinq_ValueDelegate_SIMD |
.NET 6 PGO |
DOTNET_ReadyToRun=0,DOTNET_TC_QuickJitForLoops=1,DOTNET_TieredPGO=1 |
.NET 6.0 |
100 |
70.38 ns |
0.263 ns |
0.205 ns |
5.31x faster |
0.03x |
0.2180 |
456 B |
Faslinq |
.NET 6 PGO |
DOTNET_ReadyToRun=0,DOTNET_TC_QuickJitForLoops=1,DOTNET_TieredPGO=1 |
.NET 6.0 |
100 |
457.97 ns |
0.807 ns |
0.755 ns |
1.23x slower |
0.00x |
0.5660 |
1,184 B |
|
|
|
|
|
|
|
|
|
|
|
|
ForLoop |
.NET Core 3.1 |
Empty |
.NET Core 3.1 |
100 |
388.60 ns |
1.726 ns |
1.530 ns |
baseline |
|
0.5660 |
1,184 B |
ForeachLoop |
.NET Core 3.1 |
Empty |
.NET Core 3.1 |
100 |
544.09 ns |
1.335 ns |
1.183 ns |
1.40x slower |
0.01x |
0.5655 |
1,184 B |
Linq |
.NET Core 3.1 |
Empty |
.NET Core 3.1 |
100 |
347.01 ns |
0.738 ns |
0.690 ns |
1.12x faster |
0.00x |
0.2522 |
528 B |
LinqFaster |
.NET Core 3.1 |
Empty |
.NET Core 3.1 |
100 |
410.68 ns |
0.906 ns |
0.803 ns |
1.06x slower |
0.00x |
0.4358 |
912 B |
LinqFasterer |
.NET Core 3.1 |
Empty |
.NET Core 3.1 |
100 |
403.66 ns |
1.562 ns |
1.461 ns |
1.04x slower |
0.00x |
0.6232 |
1,304 B |
LinqAF |
.NET Core 3.1 |
Empty |
.NET Core 3.1 |
100 |
1,358.13 ns |
1.981 ns |
1.756 ns |
3.49x slower |
0.01x |
0.5646 |
1,184 B |
LinqOptimizer |
.NET Core 3.1 |
Empty |
.NET Core 3.1 |
100 |
2,477.99 ns |
12.739 ns |
11.916 ns |
6.38x slower |
0.04x |
4.4708 |
9,360 B |
Streams |
.NET Core 3.1 |
Empty |
.NET Core 3.1 |
100 |
1,567.55 ns |
2.104 ns |
1.642 ns |
4.03x slower |
0.02x |
0.7534 |
1,576 B |
StructLinq |
.NET Core 3.1 |
Empty |
.NET Core 3.1 |
100 |
313.67 ns |
0.510 ns |
0.477 ns |
1.24x faster |
0.00x |
0.2484 |
520 B |
StructLinq_ValueDelegate |
.NET Core 3.1 |
Empty |
.NET Core 3.1 |
100 |
167.21 ns |
0.424 ns |
0.397 ns |
2.32x faster |
0.01x |
0.2370 |
496 B |
Hyperlinq |
.NET Core 3.1 |
Empty |
.NET Core 3.1 |
100 |
365.14 ns |
0.456 ns |
0.356 ns |
1.06x faster |
0.00x |
0.2179 |
456 B |
Hyperlinq_ValueDelegate |
.NET Core 3.1 |
Empty |
.NET Core 3.1 |
100 |
137.47 ns |
0.679 ns |
0.567 ns |
2.83x faster |
0.01x |
0.2179 |
456 B |
Hyperlinq_SIMD |
.NET Core 3.1 |
Empty |
.NET Core 3.1 |
100 |
142.09 ns |
0.667 ns |
0.624 ns |
2.74x faster |
0.02x |
0.2179 |
456 B |
Hyperlinq_ValueDelegate_SIMD |
.NET Core 3.1 |
Empty |
.NET Core 3.1 |
100 |
88.67 ns |
0.757 ns |
0.671 ns |
4.38x faster |
0.04x |
0.2180 |
456 B |
Faslinq |
.NET Core 3.1 |
Empty |
.NET Core 3.1 |
100 |
501.87 ns |
1.325 ns |
1.175 ns |
1.29x slower |
0.01x |
0.5655 |
1,184 B |