name: bench-show version: 0.2.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 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: . <> . 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.3 , 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.14 && < 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