Hi Simon,

I think that they are somehow handled differently (why?) but they are all muddled up on the wiki page.

They are handled differently because we do not want to compare local metrics with CI metrics. The exception is when local metrics don't exist, then we fall back to CI metrics as a baseline (see How baseline metrics are calculated).

Getting to the *raw data* should be easy:
  1. Checkout an the <baseline> commit.
  2. Use `git status` to double check git sees a clean working tree.
  3. Run the performance tests.
  4. Check out your <target> branch.
  5. Use `git status` to double check git sees a clean working tree (else commit any changes)
  6. Run the performance tests.
  7. Compare metrics (filtering for `local` metrics and outputting a chart):

            python3 testsuite/driver/perf_notes.py --chart chart.html --test-env local <baseline> <target>

see `python3 testsuite/driver/perf_notes.py --help` for more filtering options. This doesn't detect regressions automatically, it only shows you the raw data. Ideally we'd add an option to the testrunner to let you specify a baseline commit manually. I suspect that would be close to what you're looking for.

$ git fetch https://gitlab.haskell.org/ghc/ghc-performance-notes.git refs/notes/perf:refs/notes/ci/perf

Yes, this fetches the latest CI metrics into your git notes.

see above.
The test runner should use HEAD's metrics automatically (see How baseline metrics are calculated), though you will need to fetch CI metrics or run the perf tests locally on HEAD to get the relevant metrics.
The test runner will output (per test) which baseline commit is used e.g. "... from local
baseline @ HEAD~2" says the baseline was a local run from 2 commits ago.

You can run the perf tests on each commit *in commit order*, and the previous commit will always be used as the baseline. You can also then chart the results:

            python3 testsuite/driver/perf_notes.py --chart chart.html --test-env local <oldestCommit>..<newestCommit>

Sorry if this is a bit unoptimal, but I Hope that helps

- David E



-- 
David Eichmann, Haskell Consultant
Well-Typed LLP, http://www.well-typed.com

Registered in England & Wales, OC335890
118 Wymering Mansions, Wymering Road, London W9 2NF, England