-
Notifications
You must be signed in to change notification settings - Fork 45
Performance
Nick Palladinos edited this page May 20, 2021
·
7 revisions
This page demonstrates the performance of LinqOptimizer in C# and F# compared to the Linq and F# Seq implementations respectively. In the benchmarks we used :
- The
CLR/.NET 4.5.1
version on a Windows Server 2012 R2 machine. - The
Mono JIT compiler 3.2.3
on a openSUSE 12.3 machine using the sgen garbage collector. - The machine used is a Windows Azure VM of Extra Large size (8 cores, 14GB memory).
- The
LinqOptimizer 0.5.2
development version.
In the following benchmarks we compare:
- The sequential/parallel Linq implementation in C#, with the sequential/parallel LinqOptimizer implementation.
- The sequential F# Seq implementation with the sequential LingOptimizer F# implementation, and the PLinq in F# with the parallel LinqOptimizer F#.
The source code of the benchmarks can be found in the benchmarks branch.
- Sum. Compute the sum 200,000,000 random floating point values.
- Sum of squares. Compute the sum the squares of 200,000,000 random floating point values.
- Cartesian product. Compute the cartesian product of 20,000,000 * 20 random floating point values.
- Group by. Group 20,000,000 numbers into 200,000 groups and return the number of values that belong to each group.
- Pythagorean triples. Compute the number of Pythegorean triples bellow 1,000.
* The sequential Linq GroupBy test in mono failed to complete in reasonable time.