ghcide/bench
Pepe Iborra 1d1f2db3bd
Enhance benchmarks & bug fixes (#823)
* parse allocations

* WaitForShakeQueue

* Measure user time and shake time in experiments

* clean ups

* Prevent a potential crash of the shake enqueue thread

* Fix a bug that was preventing reenqueud actions from getting flushed

* Avoid running the check-project action per file

What we really want is to check the project once per cradle

* Backwards compat.

* Review feedback

* Fix typo

Co-authored-by: Neil Mitchell <ndmitchell@gmail.com>

Co-authored-by: Neil Mitchell <ndmitchell@gmail.com>
2020-09-20 11:03:51 +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 Enhance benchmarks & bug fixes (#823) 2020-09-20 11:03:51 +01: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.