perf-0.14.0.2: Performance methods and monad.
Safe HaskellSafe-Inferred
LanguageGHC2021

Perf.Report

Description

Reporting on performance, potentially checking versus a canned results.

Synopsis

Documentation

type Name = String Source #

Benchmark name

data Header Source #

Whether to include header information.

Constructors

Header 
NoHeader 

Instances

Instances details
Generic Header Source # 
Instance details

Defined in Perf.Report

Associated Types

type Rep Header :: Type -> Type #

Methods

from :: Header -> Rep Header x #

to :: Rep Header x -> Header #

Show Header Source # 
Instance details

Defined in Perf.Report

Eq Header Source # 
Instance details

Defined in Perf.Report

Methods

(==) :: Header -> Header -> Bool #

(/=) :: Header -> Header -> Bool #

type Rep Header Source # 
Instance details

Defined in Perf.Report

type Rep Header = D1 ('MetaData "Header" "Perf.Report" "perf-0.14.0.2-H75Z2hMBQeo3kcFBvLiyTU" 'False) (C1 ('MetaCons "Header" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "NoHeader" 'PrefixI 'False) (U1 :: Type -> Type))

parseHeader :: Parser Header Source #

Command-line parser for Header

data CompareLevels Source #

Levels of geometric difference in compared performance that triggers reporting.

Instances

Instances details
Show CompareLevels Source # 
Instance details

Defined in Perf.Report

Eq CompareLevels Source # 
Instance details

Defined in Perf.Report

defaultCompareLevels :: CompareLevels Source #

>>> defaultCompareLevels
CompareLevels {errorLevel = 0.2, warningLevel = 5.0e-2, improvedLevel = 5.0e-2}

data ReportOptions Source #

Options for production of a performance report.

Instances

Instances details
Generic ReportOptions Source # 
Instance details

Defined in Perf.Report

Associated Types

type Rep ReportOptions :: Type -> Type #

Show ReportOptions Source # 
Instance details

Defined in Perf.Report

Eq ReportOptions Source # 
Instance details

Defined in Perf.Report

type Rep ReportOptions Source # 
Instance details

Defined in Perf.Report

type Rep ReportOptions = D1 ('MetaData "ReportOptions" "Perf.Report" "perf-0.14.0.2-H75Z2hMBQeo3kcFBvLiyTU" 'False) (C1 ('MetaCons "ReportOptions" 'PrefixI 'True) (((S1 ('MetaSel ('Just "reportN") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int) :*: (S1 ('MetaSel ('Just "reportLength") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int) :*: S1 ('MetaSel ('Just "reportClock") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Clock))) :*: (S1 ('MetaSel ('Just "reportStatDType") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 StatDType) :*: (S1 ('MetaSel ('Just "reportMeasureType") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 MeasureType) :*: S1 ('MetaSel ('Just "reportGolden") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Golden)))) :*: ((S1 ('MetaSel ('Just "reportHeader") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Header) :*: (S1 ('MetaSel ('Just "reportCompare") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CompareLevels) :*: S1 ('MetaSel ('Just "reportChart") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PerfChartOptions))) :*: ((S1 ('MetaSel ('Just "reportDump") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PerfDumpOptions) :*: S1 ('MetaSel ('Just "reportGC") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)) :*: (S1 ('MetaSel ('Just "reportOrder") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 OrderOptions) :*: S1 ('MetaSel ('Just "reportTasty") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool))))))

defaultReportOptions :: ReportOptions Source #

Default reporting options

data PerfDumpOptions Source #

Constructors

PerfDumpOptions 

Instances

Instances details
Generic PerfDumpOptions Source # 
Instance details

Defined in Perf.Report

Associated Types

type Rep PerfDumpOptions :: Type -> Type #

Show PerfDumpOptions Source # 
Instance details

Defined in Perf.Report

Eq PerfDumpOptions Source # 
Instance details

Defined in Perf.Report

type Rep PerfDumpOptions Source # 
Instance details

Defined in Perf.Report

type Rep PerfDumpOptions = D1 ('MetaData "PerfDumpOptions" "Perf.Report" "perf-0.14.0.2-H75Z2hMBQeo3kcFBvLiyTU" 'False) (C1 ('MetaCons "PerfDumpOptions" 'PrefixI 'True) (S1 ('MetaSel ('Just "dumpFilepath") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 FilePath) :*: S1 ('MetaSel ('Just "doDump") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)))

report :: ReportOptions -> Map [Text] [Double] -> IO () Source #

Report results

If a goldenFile is checked, and performance has degraded, the function will exit with ExitFailure so that 'cabal bench' and other types of processes can signal performance issues.

reportMain :: Example -> ReportOptions -> Name -> (Int -> PerfT IO [[Double]] a) -> IO a Source #

Run and report a benchmark with the specified reporting options.

writeResult :: FilePath -> Map [Text] Double -> IO () Source #

Write results to file

readResult :: FilePath -> IO (Either String (Map [Text] Double)) Source #

Read results from a file.

data CompareResult Source #

Comparison data between two results.

Instances

Instances details
Show CompareResult Source # 
Instance details

Defined in Perf.Report

Eq CompareResult Source # 
Instance details

Defined in Perf.Report

compareNote :: Ord a => CompareLevels -> Map a Double -> Map a Double -> Map a CompareResult Source #

Compare two results and produce some notes given level triggers.

report2D :: Map [Text] Double -> IO () Source #

Format a result as a table.

data Golden Source #

Golden file options.

Constructors

Golden 

Fields

Instances

Instances details
Generic Golden Source # 
Instance details

Defined in Perf.Report

Associated Types

type Rep Golden :: Type -> Type #

Methods

from :: Golden -> Rep Golden x #

to :: Rep Golden x -> Golden #

Show Golden Source # 
Instance details

Defined in Perf.Report

Eq Golden Source # 
Instance details

Defined in Perf.Report

Methods

(==) :: Golden -> Golden -> Bool #

(/=) :: Golden -> Golden -> Bool #

type Rep Golden Source # 
Instance details

Defined in Perf.Report

type Rep Golden

defaultGolden :: Golden Source #

Default is Golden "other/bench.perf" CheckGolden NoRecordGolden

parseGolden :: Parser Golden Source #

Parse command-line golden file options.

replaceDefaultFilePath :: FilePath -> ReportOptions -> ReportOptions Source #

Replace the Golden file path with the suggested stem, but only if the user did not specify a specific file path at the command line.

parseClock :: Parser Clock Source #

Parse command-line Clock options.