title: Why is F#'s Seq.sortBy much slower than LINQ's IEnumerable<T>.OrderBy extension method?
body: <p>I've recently written a piece of code to read some data from a file, store it in a tuple and sort all the collected data by the first element of the tuple. After some tests I've noticed that using Seq.sortBy (and Array.sortBy) is extremely slower than using IEnumerable.OrderBy.
  Below are two snippets of code which should show the behaviour I'm talking about:</p>
  
  <pre><code>
  (filename
  |> File.ReadAllLines
  |> Array.Parallel.map(fun ln -> let arr = ln.Split([|' '|], StringSplitOptions.RemoveEmptyEntries) 
                                  |> Array.map(double) 
                                  |> Array.sort in arr.[0], arr.[1])
  ).OrderBy(new Func(fun (a,b) -> a))
  </code></pre>
  
  <p>and</p>
  
  <pre><code>
  filename
  |> File.ReadAllLines
  |> Array.Parallel.map(fun ln -> let arr = ln.Split([|' '|], StringSplitOptions.RemoveEmptyEntries) |> Array.map(double) |> Array.sort in arr.[0], arr.[1])
  |> Seq.sortBy(fun (a,_) -> a)
  </code></pre>
  
  <p>On a file containing 100000 lines made of two doubles, on my computer the latter version takes over twice as long as the first one (no improvements are obtained if using Array.sortBy).
  Ideas?</p>