lean4-htt/tests/bench/build
2026-04-18 22:07:21 +00:00
..
fake_root/bin chore: fixes from #13103 "enable separate codegen" (#13241) 2026-04-02 11:13:22 +00:00
lakeprof_report_template.html
lakeprof_report_upload.py chore: improve how test suite interacts with stages (#12913) 2026-03-16 15:20:03 +00:00
lean_wrapper.py chore: pass the previous stage libLake as plugin (#13000) 2026-03-20 12:23:20 +00:00
README.md
run_bench.sh chore: don't fail on running build bench on built stage3 (#13467) 2026-04-18 22:07:21 +00:00

The build benchmark

This benchmark executes a complete build of the stage3 stdlib from stage2 and collects global and per-module metrics. This is different from most other benchmarks, which benchmark the stage the bench suite is being executed in.

The following metrics are collected by a wrapper around the entire build process:

  • build//cycles
  • build//instructions
  • build//maxrss
  • build//task-clock
  • build//wall-clock

The following metrics are collected from leanc --profile and leanc --stat and summed across all modules:

  • build/profile/<name>//wall-clock
  • build/stat/<name>//amount
  • build/stat/<name>//bytes

The following metrics are collected from lakeprof report:

  • build/lakeprof/longest build path//wall-clock
  • build/lakeprof/longest rebuild path//wall-clock

The following metrics are collected individually for each module:

  • build/module/<name>//lines
  • build/module/<name>//cycles
  • build/module/<name>//instructions
  • build/module/<name>//bytes .ilean
  • build/module/<name>//bytes .olean
  • build/module/<name>//bytes .olean.server
  • build/module/<name>//bytes .olean.private

If the file build_upload_lakeprof_report is present in the repo root, the lakeprof report will be uploaded once the benchmark run concludes.