Perf test viewer

Ben Gamari ben at smart-cactus.org
Thu Oct 15 05:04:11 UTC 2020


Sylvain Henry <sylvain at haskus.fr> writes:

> Hello everyone,
>
> Since testsuite performance results are stored into Git notes, they are 
> more difficult to visualize. At least with values in .T files we could 
> see the changes over time, but now increase/decrease are only indicated 
> into commit messages (but not necessarily by how much). The only tool we 
> have afaik is the perf_notes.py script [1] but it's not very interactive.
>
> So, long story short, I've started another one which is more interactive 
> (in the browser). An instance is running on my server: http://hsyl20.fr:4222
>
Hi Sylvain,

This looks great!

I would also note that all of the performance metrics produced by the
testsuite, nofib, and (soon) head.hackage are preserved in a PostgreSQL
database on gitlab.haskell.org which can be accessed by way of Postgrest
[1]. The schema can be found here [2]. You will also find the import
tools in the same repository (but they are quite rough around the edges;
you have been warned).

The schema is probably most conveniently used via the `results_view`
view. For instance, one can request all metrics for commits in the last
month with:

    $ curl https://perf.ghc.haskell.org/db/results_view?commit_date=gt.2020-09-01

Another useful view is `deltas`, which provides compares metrics for
pairs of commits. This I have found quite useful in spotting
regressions.

Apart from curl, there are a few other options for consuming this
information:

 * I have an Python notebook which has some convenient helpers for
   quickly plotting things in `ghc-utils` [3]. I find this option to
   have the greatest power/weight ratio for most use-cases.

 * There is an incredibly hacky attempt at a web interface here [4]
   (source here [5]) although it's probably best to bury this sad effort
  
 * Sometimes I have needed to fall back to SQL for some queries; if
   someone would find this useful we can arrange read-only SQL access on
   an individual basis.

Regardless, this project has been gradually evolving as the need arises
for the last few years. It's been quite useful but I think it's
potential is quite under-realized.

Cheers,

- Ben


[1] https://postgrest.org/
[2] https://github.com/bgamari/ghc-perf-import/blob/master/import/schema.sql
[3] https://github.com/bgamari/ghc-perf-import/blob/master/plot.ipynb
[4] http://home.smart-cactus.org/ghc-perf/
[5] https://github.com/bgamari/ghc-perf-import/tree/master/web
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 487 bytes
Desc: not available
URL: <http://mail.haskell.org/pipermail/ghc-devs/attachments/20201015/d54bd7c6/attachment.sig>


More information about the ghc-devs mailing list