Perf notes

Simon Peyton Jones simonpj at
Fri Jun 26 14:16:50 UTC 2020

Also looking at gitlab CI, there are a lot of recent commits on master without completed CI runs
I thought that wasn't possible.  Isn't that what CI is *for*?
And in any case, I don't think anyone will have accepted a doubling of bytes-allocated on T9803, in the last 28 commits, without lots of song and dance.
Ben do you know what is going on?

From: ghc-devs <ghc-devs-bounces at> On Behalf Of David Eichmann
Sent: 26 June 2020 12:06
To: ghc-devs at
Subject: Re: Perf notes

Hi Simon,

skip to the list at the bottom for TL;DR

Every time I get an email about perf notes my heart sinks a little. Hopefully there isn't a big issues here.

First of all, what commit is your branch based on? Have you rebased on a recent master?

The output you posted says "...increased from x86_64-linux-deb9 baseline @ HEAD~28". So this means it is using metrics from CI as a baseline (that's the "x86_64-linux-deb9" part), but the baseline is from 28 commits ago (that's the "HEAD~28" part). The baseline seems a bit old. Also looking at gitlab CI, there are a lot of recent commits on master without completed CI runs.  So this might be a matter of waiting for CI to finish, then fetching the CI metrics again. Any way this may help:


1. Rebase of the latest master

2. Wait for CI to finish on a more recent commit (see<>)

3. git fetch<>

4. Re run the tests

Alternatively you can generate local metrics

1. Checkout a recent commit to use as the baseline (make sure the working tree is clean)

2. Run the relevant perf tests

3. Checkout your branches HEAD commit again

4. Run the relevant tests again.

If that doesn't do it, I can have a closer look.

David E

On 6/26/20 11:29 AM, Simon Peyton Jones via ghc-devs wrote:
Despite a recent

git fetch<>

I'm getting lots of perf regressions in HEAD. For example

=====> T9203(normal) 1 of 1 [0, 0, 0]

]0;T9203(normal) 1 of 1 [0, 0, 0]cd "" &&  "/home/simonpj/code/HEAD-3/inplace/bin/ghc-stage2" -o T9203 T9203.hs -dcore-lint -dstg-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -Werror=compat -dno-debug-output  -O2<

cd "" && ./T9203  +RTS -V0 -tT9203.stats --machine-readable -RTS  <

runtime/bytes allocated increased from x86_64-linux-deb9 baseline @ HEAD~28:

    Expected    T9203 (normal) runtime/bytes allocated: 56046952.0 +/-5%

    Lower bound T9203 (normal) runtime/bytes allocated:   53244604

    Upper bound T9203 (normal) runtime/bytes allocated:   58849300

    Actual      T9203 (normal) runtime/bytes allocated:  108464536

    Deviation   T9203 (normal) runtime/bytes allocated:       93.5 %

*** unexpected stat test failure for T9203(normal)

Performance Metrics (test environment: local):

T9203(normal)             runtime/bytes allocated                     108464536.000

                          (baseline @ HEAD~28)                         56046952.000  [increased, 93.5%]
What am I doing wrong?


ghc-devs mailing list

ghc-devs at<mailto:ghc-devs at><>


David Eichmann, Haskell Consultant

Well-Typed LLP,<>

Registered in England & Wales, OC335890

118 Wymering Mansions, Wymering Road, London W9 2NF, England
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the ghc-devs mailing list