bench-show: Show, plot and compare benchmark results
Generate text reports and graphical charts from the benchmark results generated
by gauge
or 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
including:
Show individual reports for all the fields measured e.g.
time taken
,peak memory usage
,allocations
, among many other fields measured bygauge
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 gauge
or 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]
Modules
[Index] [Quick Jump]
Flags
Manual Flags
Name | Description | Default |
---|---|---|
no-charts | Don't build the modules that provide charting functionality | Disabled |
no-colors | Use pretty printing without colors | Disabled |
Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info
Downloads
- bench-show-0.3.2.tar.gz [browse] (Cabal source package)
- Package description (revised from the package)
Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
- No Candidates
Versions [RSS] | 0.2.0, 0.2.1, 0.2.2, 0.3.0, 0.3.1, 0.3.2 |
---|---|
Change log | Changelog.md |
Dependencies | ansi-wl-pprint (>=0.6 && <1.1), base (>=4.8 && <4.20), bench-show, Chart (>=1.6 && <2), Chart-diagrams (>=1.6 && <2), csv (>=0.1 && <0.2), directory (>=1.2 && <1.4), filepath (>=1.3 && <1.6), mwc-random (>=0.13 && <0.16), optparse-applicative (>=0.14.2 && <0.19), optparse-simple (>=0.1.0 && <0.2), split (>=0.2 && <0.3), statistics (>=0.15 && <0.17), transformers (>=0.4 && <0.7), vector (>=0.10 && <0.14) [details] |
Tested with | ghc ==8.4.4, ghc ==8.6.5, ghc ==8.8.4, ghc ==8.10.7, ghc ==9.0.1 |
License | BSD-3-Clause |
Copyright | 2017, 2018 Composewell Technologies |
Author | Harendra Kumar |
Maintainer | harendra.kumar@gmail.com |
Revised | Revision 1 made by harendra at 2024-02-08T23:14:46Z |
Category | Performance, Benchmarking |
Home page | https://github.com/composewell/bench-show |
Bug tracker | https://github.com/composewell/bench-show/issues |
Source repo | head: git clone https://github.com/composewell/bench-show |
Uploaded | by adithyaov at 2022-02-02T23:10:03Z |
Distributions | LTSHaskell:0.3.2 |
Reverse Dependencies | 1 direct, 0 indirect [details] |
Executables | bench-show |
Downloads | 3549 total (18 in the last 30 days) |
Rating | 2.0 (votes: 1) [estimated by Bayesian average] |
Your Rating | |
Status | Docs available [build log] Last success reported on 2022-02-03 [all 1 reports] |