ghcide/bench
Pepe Iborra 0d7cae9846
Improve hist benchmarks driver and add to CI (#770)
* Remove hardcoded --stack-yaml and upstream/master assumption

* support Cabal in bench suite

* add benchmark run to CI

Even if the time measurements are unreliable in a shared CI environment, the
memory usage will be an accurate indicator of space leaks

* Update bench/README

* use origin/master

* default to stack in benchmarks (for CI)

* ignore ghcide-bench and ghcide-preprocessor binaries too

* Review feedbacks

* Add the v0.3.0 tag in bench/hist.yaml

commented out to keep the CI time as tight as possible

* Add .artifactignore file to avoid publishing binaries in azure bench pipeline

* use default stack.yaml
2020-09-06 21:54:45 +01:00
..
exe Make BenchHist non buildable by default and save logs (#666) 2020-06-29 11:00:53 +02:00
hist Improve hist benchmarks driver and add to CI (#770) 2020-09-06 21:54:45 +01:00
lib Completions need not depend on typecheck of the current file (#670) 2020-07-06 15:06:10 +02:00
hist.yaml Improve hist benchmarks driver and add to CI (#770) 2020-09-06 21:54:45 +01:00
README.md Improve hist benchmarks driver and add to CI (#770) 2020-09-06 21:54:45 +01:00

Benchmarks

This folder contains two Haskell programs that work together to simplify the performance analysis of ghcide:

  • exe/Main.hs - a standalone benchmark runner. Run with stack run ghcide-bench
  • hist/Main.hs - a Shake script for running the benchmark suite over a set of commits.
    • Run with stack bench or cabal bench,
    • Requires a ghcide-bench binary in the PATH (usually provided by stack/cabal),
    • Calls cabal (or stack, configurable) internally to build the project,
    • Driven by the hist.yaml configuration file. By default it compares HEAD with "master"

Further details available in the module header comments.