perf-0.10.1: Low-level run time measurement.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Perf.Report

Description

Reporting on performance, potentially checking versus a canned results.

Synopsis

Documentation

data Format Source #

Type of format for report

Constructors

OrgMode 
ConsoleMode 

Instances

Instances details
Generic Format Source # 
Instance details

Defined in Perf.Report

Associated Types

type Rep Format :: Type -> Type #

Methods

from :: Format -> Rep Format x #

to :: Rep Format x -> Format #

Show Format Source # 
Instance details

Defined in Perf.Report

Eq Format Source # 
Instance details

Defined in Perf.Report

Methods

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

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

type Rep Format Source # 
Instance details

Defined in Perf.Report

type Rep Format = D1 ('MetaData "Format" "Perf.Report" "perf-0.10.1-EUiicY4SYVb4NpAUwDYcFr" 'False) (C1 ('MetaCons "OrgMode" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ConsoleMode" 'PrefixI 'False) (U1 :: Type -> Type))

parseFormat :: Format -> Parser Format Source #

Command-line parser for Format

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.10.1-EUiicY4SYVb4NpAUwDYcFr" 'False) (C1 ('MetaCons "Header" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "NoHeader" 'PrefixI 'False) (U1 :: Type -> Type))

parseHeader :: Header -> 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 ReportConfig Source #

Report configuration options

Instances

Instances details
Generic ReportConfig Source # 
Instance details

Defined in Perf.Report

Associated Types

type Rep ReportConfig :: Type -> Type #

Show ReportConfig Source # 
Instance details

Defined in Perf.Report

Eq ReportConfig Source # 
Instance details

Defined in Perf.Report

type Rep ReportConfig Source # 
Instance details

Defined in Perf.Report

type Rep ReportConfig = D1 ('MetaData "ReportConfig" "Perf.Report" "perf-0.10.1-EUiicY4SYVb4NpAUwDYcFr" 'False) (C1 ('MetaCons "ReportConfig" 'PrefixI 'True) (S1 ('MetaSel ('Just "format") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Format) :*: (S1 ('MetaSel ('Just "includeHeader") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Header) :*: S1 ('MetaSel ('Just "levels") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CompareLevels))))

defaultReportConfig :: ReportConfig Source #

>>> defaultReportConfig
ReportConfig {format = ConsoleMode, includeHeader = Header, levels = CompareLevels {errorLevel = 0.2, warningLevel = 5.0e-2, improvedLevel = 5.0e-2}}

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

Write results to file

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

Read results from 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.

outercalate :: Text -> [Text] -> Text Source #

Like intercalate, but on the outside as well.

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

Report to a console, comparing the measurement versus a canned file.

reportOrg2D :: Map [Text] Text -> 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 = D1 ('MetaData "Golden" "Perf.Report" "perf-0.10.1-EUiicY4SYVb4NpAUwDYcFr" 'False) (C1 ('MetaCons "Golden" 'PrefixI 'True) (S1 ('MetaSel ('Just "golden") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 FilePath) :*: (S1 ('MetaSel ('Just "check") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just "record") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool))))

parseGolden :: String -> Parser Golden Source #

Parse command-line golden file options.

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

Report results