Output performance test results in tabular format

The old output was also like the table format, but it was a bit hard to read.
This was suggested in #18417 (closed) .

Example of new output(decrease on DeriveNull is mock):

Performance Metrics (test environment: local):

                                                                               Baseline
               Test                                 Metric            Value      Commit        Environment            Value             Change
------------------------------------------------------------------------------------------------------------------------------------------------
Conversions(normal)                runtime/bytes allocated       106936.000  770100e026  x86_64-linux-deb9       106984.000   unchanged(-0.0%)
 DeriveNull(normal)                runtime/bytes allocated    112050664.000  db8793ad41              local    152050664.000  decreased(-26.3%)
   Naperian(optasm)           compile_time/bytes allocated    219237696.000  b1eb38a0a7              local    219407064.000   unchanged(-0.1%)
     T10359(normal)                runtime/bytes allocated       386624.000  b1eb38a0a7              local       386624.000   unchanged(+0.0%)
     T10370(optasm)            compile_time/max_bytes_used     48374856.000  b1eb38a0a7              local     48375188.000   unchanged(-0.0%)
     T10370(optasm)  compile_time/peak_megabytes_allocated          128.000  b1eb38a0a7              local          128.000   unchanged(+0.0%)
      T3064(normal)           compile_time/bytes allocated   1007512832.000  b1eb38a0a7              local   1007855869.333   unchanged(-0.0%)
      T3064(normal)            compile_time/max_bytes_used     21364224.000  b1eb38a0a7              local     21295938.667   unchanged(+0.3%)
      T3064(normal)  compile_time/peak_megabytes_allocated           54.000  b1eb38a0a7              local           54.000   unchanged(+0.0%)
     T9872a(normal)           compile_time/bytes allocated  14702177584.000  db8793ad41              local  14702498160.000   unchanged(-0.0%)

Original output:

Performance Metrics (test environment: local):

Conversions(normal)       runtime/bytes allocated                        106936.000
                          (baseline @ 8426a1364ba450fe48fc41a95b2ba76c8d1bb7c8)       106984.000  [unchanged, -0.0%]
DeriveNull(normal)        runtime/bytes allocated                     112050664.000
                          (baseline @ db8793ad417ebfcb57d42e8111674a90706a7918)    112050664.000  [unchanged, 0.0%]
Naperian(optasm)          compile_time/bytes allocated                219237696.000
                          (baseline @ b1eb38a0a7168d7612c791c4289cc02d900d402f)    219407064.000  [unchanged, -0.1%]
T10359(normal)            runtime/bytes allocated                        386624.000
                          (baseline @ b1eb38a0a7168d7612c791c4289cc02d900d402f)       386624.000  [unchanged, 0.0%]
T10370(optasm)            compile_time/max_bytes_used                  48374856.000
                          (baseline @ b1eb38a0a7168d7612c791c4289cc02d900d402f)     48375188.000  [unchanged, -0.0%]
T10370(optasm)            compile_time/peak_megabytes_allocated             128.000
                          (baseline @ b1eb38a0a7168d7612c791c4289cc02d900d402f)          128.000  [unchanged, 0.0%]
T3064(normal)             compile_time/bytes allocated               1007509664.000
                          (baseline @ b1eb38a0a7168d7612c791c4289cc02d900d402f)   1007855869.333  [unchanged, -0.0%]
T3064(normal)             compile_time/max_bytes_used                  21364224.000
                          (baseline @ b1eb38a0a7168d7612c791c4289cc02d900d402f)     21295938.667  [unchanged, 0.3%]
T3064(normal)             compile_time/peak_megabytes_allocated              54.000
                          (baseline @ b1eb38a0a7168d7612c791c4289cc02d900d402f)           54.000  [unchanged, 0.0%]
T9872a(normal)            compile_time/bytes allocated              14702177584.000
                          (baseline @ db8793ad417ebfcb57d42e8111674a90706a7918)  14702498160.000  [unchanged, -0.0%]

Where is the key part of this patch? That is, what should reviewers look at first?

It's whether or not the new output is easy to read.

And I have some questions.

  • Does the selection and order of the columns look right?
  • Is the total width appropriate?
    • I would add a more compact layout option if needed
  • I've shortened the commit hash, does it look good?

  • are either individually buildable or squashed
  • have commit messages which describe what they do (referring to [Notes][notes] and tickets using #NNNN syntax when appropriate)
  • have added source comments describing your change. For larger changes you likely should add a [Note][notes] and cross-reference it from the relevant places.
  • add a testcase to the testsuite.
  • if your MR affects library interfaces (e.g. changes base) or affects whether GHC will accept user-written code, please add the ~"user facing" label.
  • updates the users guide if applicable
  • mentions new features in the release notes for the next release
Edited by Daishi Nakajima

Merge request reports

Loading