bench-show: Show, plot and compare benchmark results
Generate text reports and graphical charts from the benchmark results generated
criterion and stored in a CSV file. This tool is especially
useful when you have many benchmarks or if you want to compare benchmarks
across multiple packages. You can generate many interesting reports
Show individual reports for all the fields measured e.g.
peak memory usage,
allocations, among many other fields measured by
Sort benchmark results on a specified criterion e.g. you may want to see the biggest cpu hoggers or biggest memory hoggers on top
Across two benchmark runs (e.g. before and after a change), show all the operations that resulted in a regression of more than x% in descending order, 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
criterion to generate a
results.csv file, and
then use either the
bench-show executable or the library APIs to generate
textual or graphical reports.
$ bench-show report results.csv $ bench-show graph results.csv output
report "results.csv" Nothing defaultConfig graph "results.csv" "output" defaultConfig
There are many ways to present the reports, for example, you can show can show % regression from a baseline in descending order textually 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.
[Skip to Readme]
|Versions [faq]||0.2.0, 0.2.1, 0.2.2, 0.3.0, 0.3.1|
|Dependencies||ansi-wl-pprint (==0.6.*), base (>=4.8 && <5), bench-show, Chart (>=1.6 && <2), Chart-diagrams (>=1.6 && <2), csv (==0.1.*), directory (>=1.2 && <1.4), filepath (>=1.3 && <1.5), mwc-random (>=0.13 && <0.15), optparse-applicative (>=0.14.2 && <0.16), optparse-simple (>=0.1.0 && <0.2), semigroups (>=0.18 && <0.20), split (==0.2.*), statistics (==0.15.*), transformers (>=0.4 && <0.6), vector (>=0.10 && <0.13) [details]|
|Copyright||2017, 2018 Composewell Technologies|
|Source repo||head: git clone https://github.com/composewell/bench-show|
|Uploaded||by harendra at 2020-01-14T06:08:18Z|
|Downloads||1993 total (16 in the last 30 days)|
|Rating||(no votes yet) [estimated by Bayesian average]|
Docs available [build log]
Last success reported on 2020-01-14 [all 1 reports]
For package maintainers and hackage trustees