dotnet/fsharp · performance · compiler server

F# compiler (fsc) benchmark

Loading data…

Setup

Hardware

Software

Method

  1. Lay out the stock compiler (main @ 99406265) and the server branch the way the .NET SDK ships fsc: ReadyToRun per assembly, Server GC runtimeconfig.
  2. Replay each compilation captured from a real dotnet build FSharp.Compiler.Service.slnx. Process configs run dotnet fsc.dll @rsp; server configs send the same response file to a worker over its socket, exactly as the Fsc task does.
  3. Two warm workers, one per mode. 1 warm-up round, then 5 measured rounds over all 17 captured compilations; each compilation runs in both modes back to back (order alternating per round), one compilation at a time.
  4. Record per run: wall and CPU time (process: rusage; worker: its own CPU delta), the compiler's --times phases and, for workers, GC pause, allocations and GC counts measured inside the worker.
  5. Report medians with a 95% bootstrap CI on every change; a change counts only when its CI excludes zero. Every server config produced assemblies identical to stock.

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