Added benchmark comparisons to Cistern.Linq #11
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Cistern.Linq is an alternative implementation of Linq-to-objects. It uses no runtime code generation, rather contains a different implementation reminiscent of Nessos Streams yet retaining compatibility with Linq-to-Objects (as well as a layer to F#'s Seq).
Benchmark times for c# are included in this file (part of this PR), where although LinqOptimizer pulls ahead for very large collections, it can be seen that the Cistern implementation is mostly faster than System.Linq even for very modest collections.
The F# benchmarks are here (no parallel code is currently implemented, and I currently don't have any plans):
Cistern.Linq is not finished. Still quite a bit of work actually as I clean up all the edges and expand validation, but it's but it's got stubs to existing code to provide full API coverage.
To simplify things it's just .net standard 2.1 / .net core 3.0