LinqFaster
LinqFaster copied to clipboard
Benchmark request
Smaller List<T>
, Sum and Where(x x=>x%2000).Select(x =>x*x)
BenchmarkDotNet=v0.10.3.0, OS=Microsoft Windows NT 6.2.9200.0
Processor=Intel(R) Core(TM) i7-6700 CPU 3.40GHz, ProcessorCount=8
Frequency=3328121 Hz, Resolution=300.4698 ns, Timer=TSC
[Host] : Clr 4.0.30319.42000, 64bit RyuJIT-v4.7.2046.0
RyuJitX64 : Clr 4.0.30319.42000, 64bit RyuJIT-v4.7.2046.0
Job=RyuJitX64 Jit=RyuJit Platform=X64
Method | TEST_SIZE | Mean | StdDev | Gen 0 | Allocated |
---|---|---|---|---|---|
SumLinq | 10 | 85.1899 ns | 0.1173 ns | 0.0062 | 40 B |
SumLinqFaster | 10 | 10.1558 ns | 0.0872 ns | - | 0 B |
WhereSelect | 10 | 209.9139 ns | 0.3424 ns | 0.0558 | 288 B |
WhereSelectMinLinqFaster | 10 | 93.0835 ns | 0.1782 ns | 0.0261 | 136 B |
SumLinq | 100 | 596.9848 ns | 0.9774 ns | - | 40 B |
SumLinqFaster | 100 | 90.6256 ns | 0.2687 ns | - | 0 B |
WhereSelect | 100 | 1,128.6667 ns | 1.4259 ns | 0.1450 | 808 B |
WhereSelectMinLinqFaster | 100 | 672.5056 ns | 1.2559 ns | 0.1301 | 656 B |
SumLinq | 1000 | 5,729.0542 ns | 5.9019 ns | - | 40 B |
SumLinqFaster | 1000 | 823.4186 ns | 1.4371 ns | - | 0 B |
WhereSelect | 1000 | 9,000.8336 ns | 10.6227 ns | 0.7039 | 4.46 kB |
WhereSelectMinLinqFaster | 1000 | 5,677.9769 ns | 25.0852 ns | 0.8392 | 4.31 kB |
Parallel LinqFaster vs regular Linq Parallel, list of ints
BenchmarkDotNet=v0.10.3.0, OS=Microsoft Windows NT 6.2.9200.0
Processor=Intel(R) Core(TM) i7-6700 CPU 3.40GHz, ProcessorCount=8
Frequency=3328121 Hz, Resolution=300.4698 ns, Timer=TSC
[Host] : Clr 4.0.30319.42000, 64bit RyuJIT-v4.7.2046.0
RyuJitX64 : Clr 4.0.30319.42000, 64bit RyuJIT-v4.7.2046.0
Job=RyuJitX64 Jit=RyuJit Platform=X64
Method | TEST_SIZE | Mean | StdDev | Gen 0 | Allocated |
---|---|---|---|---|---|
SumLinqParallel | 100000 | 137.2008 us | 3.3395 us | - | 5.03 kB |
SumLinqFasterParallel | 100000 | 41.4944 us | 3.9871 us | 0.7935 | 4.22 kB |
SelectSumLinqParallel | 100000 | 224.9116 us | 1.0943 us | - | 5.22 kB |
SelectSumLinqFasterParallel | 100000 | 73.8506 us | 5.6800 us | - | 4.22 kB |
V 1.0.2
BenchmarkDotNet=v0.11.5, OS=Windows 10.0.18362
Intel Core i7-6700 CPU 3.40GHz (Skylake), 1 CPU, 8 logical and 4 physical cores
[Host] : .NET Framework 4.7.2 (CLR 4.0.30319.42000), 64bit RyuJIT-v4.8.3815.0
RyuJitX64 : .NET Framework 4.7.2 (CLR 4.0.30319.42000), 64bit RyuJIT-v4.8.3815.0
Job=RyuJitX64 Jit=RyuJit Platform=X64
Method | TEST_SIZE | Mean | Error | StdDev | Median | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
OrderByLinq | 1000000 | 162,875.75 us | 2,340.122 us | 2,188.952 us | 162,460.57 us | - | - | - | 12002803 B |
OrderByFast | 1000000 | 36,920.62 us | 541.421 us | 452.111 us | 36,783.29 us | 133.3333 | 133.3333 | 133.3333 | 8001686 B |
SumLinq | 1000000 | 5,453.64 us | 61.392 us | 57.426 us | 5,457.55 us | - | - | - | - |
SumFast | 1000000 | 619.43 us | 9.323 us | 8.264 us | 618.48 us | - | - | - | - |
SumFastSIMD | 1000000 | 105.68 us | 2.000 us | 2.223 us | 105.38 us | - | - | - | - |
AverageLinq | 1000000 | 5,995.03 us | 49.164 us | 43.583 us | 6,003.62 us | - | - | - | - |
AverageFast | 1000000 | 602.31 us | 13.048 us | 12.815 us | 598.02 us | - | - | - | - |
AverageFastSIMD | 1000000 | 99.39 us | 1.451 us | 1.212 us | 99.74 us | - | - | - | - |
SumWithSelectLinq | 1000000 | 6,682.90 us | 102.824 us | 91.151 us | 6,663.52 us | - | - | - | - |
SumWithSelectFast | 1000000 | 2,116.64 us | 24.148 us | 22.588 us | 2,111.50 us | - | - | - | - |
WhereAggregateLinq | 1000000 | 5,330.36 us | 97.811 us | 91.492 us | 5,308.65 us | - | - | - | 128 B |
WhereAggregateFast | 1000000 | 3,503.08 us | 38.919 us | 36.405 us | 3,502.08 us | - | - | - | 96 B |
SelectFast | 1000000 | 2,794.19 us | 54.800 us | 83.686 us | 2,780.09 us | 74.2188 | 74.2188 | 74.2188 | 4000024 B |
SelectFastSIMD | 1000000 | 1,986.71 us | 124.579 us | 367.325 us | 2,237.61 us | 27.3438 | 27.3438 | 27.3438 | 4000024 B |
RepeatLinq | 1000000 | 8,318.49 us | 165.551 us | 356.366 us | 8,302.07 us | 234.3750 | 203.1250 | 203.1250 | 12391784 B |
RepeastFast | 1000000 | 1,648.23 us | 94.708 us | 279.248 us | 1,589.07 us | 23.4375 | 23.4375 | 23.4375 | 4000024 B |
RepeastFastSIMD | 1000000 | 1,722.76 us | 40.186 us | 118.489 us | 1,742.97 us | 15.6250 | 15.6250 | 15.6250 | 4000024 B |
MinLinq | 1000000 | 5,405.62 us | 59.997 us | 56.121 us | 5,397.42 us | - | - | - | - |
MinFast | 1000000 | 998.92 us | 17.777 us | 15.759 us | 1,000.48 us | - | - | - | - |
MinFastSIMD | 1000000 | 100.16 us | 1.502 us | 1.332 us | 100.00 us | - | - | - | - |
SequenceEqual | 1000000 | 13,624.65 us | 123.927 us | 109.858 us | 13,642.31 us | - | - | - | - |
SequenceEqualF | 1000000 | 2,405.22 us | 20.760 us | 17.336 us | 2,404.19 us | - | - | - | - |
SequenceEqualP | 1000000 | 825.85 us | 15.729 us | 19.893 us | 823.90 us | 0.9766 | - | - | 4376 B |
SequenceEqualS | 1000000 | 307.51 us | 5.815 us | 6.923 us | 308.92 us | - | - | - | - |
SequenceEqualSP | 1000000 | 122.51 us | 3.201 us | 9.387 us | 120.78 us | 0.7324 | - | - | 3776 B |