dotnet/fsharp · performance

F# compiler (fsc) benchmark

Loading data…

Setup

Hardware

Software

Method

  1. Build dotnet/fsharp in Release, then lay fsc out the way the .NET SDK ships it: ReadyToRun via crossgen2 per assembly, and the SDK's fsc.runtimeconfig.json (Server GC).
  2. Capture every fsc command line from one full dotnet build FSharp.Compiler.Service.slnx -c Release.
  3. Replay each compilation in isolation (dotnet fsc.dll @rsp). Inputs are identical in every configuration, and outputs go to a scratch directory.
  4. Interleave configurations. Every round runs all of them once, in shuffled order.
  5. Record per run:
    • wall and CPU time and peak RSS
    • GC and JIT counters (startup hook)
    • compiler phases (--times)
    • host activity, flagging disturbed runs
  6. Report medians, with a 95% bootstrap confidence interval (CI) on every change. A change counts as significant only when its CI excludes zero.

Metric grid

  • One row per compilation, one column per metric. In each cell, every selected config is a bar.
  • A bar is the median. The whisker is the interquartile range (q1 to q3). Bars start at zero.
  • Hover a bar for n, the quartiles, and the change vs the reference config with its 95% CI.

Results explorer

Every run, per compilation

Numbers for the selected metric

Measurement quality