Performance

krontogiannis edited this page Feb 5, 2014 · 5 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.

Benchmarks description

  • 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.

Benchmarks

Notes

* The sequential Linq GroupBy test in mono failed to complete in reasonable time.

Clone this wiki locally
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.