bench-show-0.2.2: bench-show.cabal
name: bench-show
version: 0.2.2
license: BSD3
author: Harendra Kumar
maintainer: harendra.kumar@gmail.com
bug-reports: https://github.com/composewell/bench-show/issues
synopsis: Show, plot and compare benchmark results
description:
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:
.
<<src/docs/regression-percent-descending-median-time.svg>>
.
See the README and the "BenchShow.Tutorial" module for comprehensive
documentation.
category: Performance, Benchmarking
homepage: https://github.com/composewell/bench-show
license-file: LICENSE
tested-with: GHC==8.4.4
, GHC==8.2.2
, GHC==7.10.3
copyright: 2017, 2018 Composewell Technologies
stability: Experimental
build-type: Simple
cabal-version: 1.18
extra-source-files:
Changelog.md
README.md
stack.yaml
stack-8.2.yaml
test/results.csv
test/results.csvraw
test/results-doc.csv
test/results-doc-multi.csv
docs/full-median-time.svg
docs/grouped-median-time.svg
docs/grouped-delta-median-time.svg
docs/grouped-percent-delta-coeff-time.svg
docs/grouped-percent-delta-median-time.svg
docs/grouped-percent-delta-sorted-median-time.svg
docs/grouped-single-estimator-coeff-time.svg
docs/regression-percent-descending-median-time.svg
extra-doc-files:
docs/full-median-time.svg
docs/grouped-median-time.svg
docs/grouped-delta-median-time.svg
docs/grouped-percent-delta-coeff-time.svg
docs/grouped-percent-delta-median-time.svg
docs/grouped-percent-delta-sorted-median-time.svg
docs/grouped-single-estimator-coeff-time.svg
docs/regression-percent-descending-median-time.svg
source-repository head
type: git
location: https://github.com/composewell/bench-show
library
hs-source-dirs: lib
exposed-modules: BenchShow
, BenchShow.Tutorial
other-modules: BenchShow.Analysis
, BenchShow.Common
, BenchShow.Graph
, BenchShow.Report
default-language: Haskell2010
default-extensions:
OverloadedStrings
RecordWildCards
ghc-options: -Wall
build-depends:
base >= 4.8 && < 5
, Chart >= 1.6 && < 2
, Chart-diagrams >= 1.6 && < 2
, csv >= 0.1 && < 0.2
, filepath >= 1.3 && < 1.5
, mwc-random >= 0.13 && < 0.15
, directory >= 1.2 && < 1.4
, transformers >= 0.4 && < 0.6
, ansi-wl-pprint >= 0.6 && < 0.7
, split >= 0.2 && < 0.3
, statistics >= 0.15 && < 0.16
, vector >= 0.10 && < 0.13
test-suite test
type: exitcode-stdio-1.0
default-language: Haskell2010
default-extensions:
OverloadedStrings
RecordWildCards
hs-source-dirs: test
main-is: Main.hs
ghc-options: -Wall
build-depends:
bench-show
, base >= 4.8 && < 5
, split >= 0.2 && < 0.3
, text >= 1.1.1 && < 1.3
-- , typed-process >= 0.1.0.0 && < 0.3
test-suite doc
type: exitcode-stdio-1.0
default-language: Haskell2010
default-extensions:
OverloadedStrings
RecordWildCards
hs-source-dirs: test
main-is: Doc.hs
ghc-options: -Wall
build-depends:
bench-show
, base >= 4.8 && < 5
, split >= 0.2 && < 0.3