packages feed

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