LinqBenchmarks
Benchmarks comparing the performance of LINQ against for
/foreach
loops and the following libraries:
- Faslinq
- Cistern.ValueLinq
- JM.LinqFaster
- LinqFasterer
- LinqAF
- SpanLinq
- Streams
- LinqOptimizer
- StructLinq
- NetFabric.Hyperlinq
- System.Linq.Async
Results
Range()
- Range()
- Range().Select()
- Range().Select().ToArray()
- Range().Select().ToList()
- Range().ToArray()
- Range().ToList()
IEnumerable<int>
- enumerable.Contains()
- enumerable.Distinct()
- enumerable.Select()
- enumerable.Skip().Take().Select()
- enumerable.Skip().Take().Where()
- enumerable.Sum()
- enumerable.Where()
- enumerable.Where().Count()
- enumerable.Where().Select()
- enumerable.Where().Select().ToArray()
- enumerable.Where().Select().ToList()
IEnumerable<FatReferenceType>
int[]
- array.Contains()
- array.Distinct()
- array.Select()
- array.Select().ToList()
- array.Skip().Take().Select()
- array.Skip().Take().Where()
- array.Sum()
- array.Where()
- array.Where().Count()
- array.Where().Select()
- array.Where().Select().ToArray()
- array.Where().Select().ToList()
FatValueType[]
- array.Contains()
- array.Distinct()
- array.Select()
- array.Select().Sum()
- array.Skip().Take().Select()
- array.Skip().Take().Where()
- array.Where()
- array.Where().Count()
- array.Where().Select()
- array.Where().Select().ToArray()
- array.Where().Select().ToList()
List<int>
- list.Contains()
- list.Distinct()
- list.Select()
- list.Select().ToList()
- list.Skip().Take().Select()
- list.Skip().Take().Where()
- list.Sum()
- list.Where()
- list.Where().Select()
- list.Where().Select().ToArray()
- list.Where().Select().ToList()
List<FatValueType>
- list.Contains()
- list.Distinct()
- list.Select()
- list.Select().Sum()
- list.Skip().Take().Select()
- list.Skip().Take().Where()
- list.Where()
- list.Where().Select()
- list.Where().Select().ToArray()
- list.Where().Select().ToList()
ImmutableArray<int>
IAsyncEnumerable<int>
- enumerable.ContainsAsync()
- enumerable.Distinct()
- enumerable.Select()
- enumerable.Skip().Take().Select()
- enumerable.Skip().Take().Where()
- enumerable.SumAsync()
- enumerable.Where()
- enumerable.Where().CountAsync()
- enumerable.Where().Select()
- enumerable.Where().Select().ToArrayAsync()
- enumerable.Where().Select().ToListAsync()