bench-show-0.3.0: bench-show.cabal
name: bench-show
version: 0.3.0
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 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 by @gauge@
* 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:
.
<<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.6.5
, 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
executable bench-show
default-language: Haskell2010
hs-source-dirs: app
main-is: Main.hs
other-modules: Paths_bench_show
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
, semigroups >= 0.18 && < 0.20
, optparse-applicative >= 0.14.2 && < 0.14.4
, optparse-simple >= 0.1.0 && < 0.2
, bench-show
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