This PR adds a new [radar]-based [temci]-less bench suite that replaces the `stdlib` benchmarks from the old suite and also measures per-module instruction counts. All other benchmarks from the old suite are unaffected. The readme at `tests/bench-radar/README.md` explains in more detail how the bench suite is structured and how it works. The readmes in the benchmark subdirectories explain what each benchmark does and which metrics it collects. All metrics except `stdlib//max dynamic symbols` were ported to the new suite, though most have been renamed. [radar]: https://github.com/leanprover/radar [temci]: https://github.com/parttimenerd/temci
875 B
875 B
The build benchmark
This benchmark executes a complete build of the stage3 stdlib and collects global and per-module metrics.
The following metrics are collected by a wrapper around the entire build process:
build//instructionsbuild//maxrssbuild//task-clockbuild//wall-clock
The following metrics are collected from leanc --profile and summed across all modules:
build/profile/<name>//wall-clock
The following metrics are collected from lakeprof report:
build/lakeprof/longest build path//wall-clockbuild/lakeprof/longest rebuild path//wall-clock
The following metrics are collected individually for each module:
build/module/<name>//linesbuild/module/<name>//instructions
If the file build_upload_lakeprof_report is present in the repo root,
the lakeprof report will be uploaded once the benchmark run concludes.