@hackage bench-show0.2.2

Show, plot and compare benchmark results

Generate text reports and graphical charts from benchmark results generated by gauge or criterion, showing or comparing benchmarks in many useful ways. In a few lines of code, we can report time taken, peak memory usage, allocations, among many other fields; we can arrange benchmarks in groups and compare the groups; we can compare benchmark results before and after a change; we can show the difference from baseline in absolute terms or as a percentage; we can sort the results by percentage change to get the worst affected benchmarks.

bench-show helps us in answering questions like the following, visually or textually:

  • Across two benchmark runs, show all the operations that resulted in a regression of more than 10%, so that we can quickly identify and fix performance problems in our application.

  • Across two (or more) packages (providing similar functionality), show all the operations where the performance differs by more than 10%, so that we can critically analyze the packages and choose the right one.

Quick Start: Use gauge or criterion to generate a results.csv file, and then use the following code to generate a textual report or a graph:

report "results.csv"  Nothing defaultConfig
graph  "results.csv" "output" defaultConfig

For example, you can show can show % regression from a baseline in descending order texttually as follows:

(time)(Median)(Diff using min estimator)
Benchmark streamly(0)(μs)(base) streamly(1)(%)(-base)
--------- --------------------- ---------------------
zip                      644.33                +23.28
map                      653.36                 +7.65
fold                     639.96                -15.63

To show the same graphically:

See the README and the BenchShow.Tutorial module for comprehensive documentation.