packages feed

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