Safe Haskell | Safe-Inferred |
---|---|
Language | GHC2021 |
Reporting on performance, potentially checking versus a canned results.
Synopsis
- type Name = String
- data Header
- parseHeader :: Parser Header
- data CompareLevels = CompareLevels {}
- defaultCompareLevels :: CompareLevels
- parseCompareLevels :: CompareLevels -> Parser CompareLevels
- data ReportOptions = ReportOptions {}
- defaultReportOptions :: ReportOptions
- parseReportOptions :: Parser ReportOptions
- infoReportOptions :: ParserInfo ReportOptions
- report :: ReportOptions -> Map [Text] [Double] -> IO ()
- reportMain :: Name -> PerfT IO [[Double]] a -> IO ()
- reportMainWith :: ReportOptions -> Name -> PerfT IO [[Double]] a -> IO ()
- writeResult :: FilePath -> Map [Text] Double -> IO ()
- readResult :: FilePath -> IO (Either String (Map [Text] Double))
- data CompareResult = CompareResult {}
- compareNote :: Ord a => CompareLevels -> Map a Double -> Map a Double -> Map a CompareResult
- reportOrg2D :: Map [Text] Text -> IO ()
- data Golden = Golden {}
- defaultGolden :: Golden
- parseGolden :: Parser Golden
- replaceDefaultFilePath :: FilePath -> ReportOptions -> ReportOptions
Documentation
Whether to include header information.
data CompareLevels Source #
Levels of geometric difference in compared performance that triggers reporting.
Instances
Show CompareLevels Source # | |
Defined in Perf.Report showsPrec :: Int -> CompareLevels -> ShowS # show :: CompareLevels -> String # showList :: [CompareLevels] -> ShowS # | |
Eq CompareLevels Source # | |
Defined in Perf.Report (==) :: CompareLevels -> CompareLevels -> Bool # (/=) :: CompareLevels -> CompareLevels -> Bool # |
defaultCompareLevels :: CompareLevels Source #
>>>
defaultCompareLevels
CompareLevels {errorLevel = 0.2, warningLevel = 5.0e-2, improvedLevel = 5.0e-2}
parseCompareLevels :: CompareLevels -> Parser CompareLevels Source #
Command-line parser for CompareLevels
data ReportOptions Source #
Options for production of a performance report.
ReportOptions | |
|
Instances
defaultReportOptions :: ReportOptions Source #
Default options
>>>
defaultReportOptions
ReportOptions {reportN = 1000, reportStatDType = StatAverage, reportMeasureType = MeasureTime, reportGolden = Golden {golden = "other/bench.perf", check = True, record = False}, reportHeader = Header, reportCompare = CompareLevels {errorLevel = 0.2, warningLevel = 5.0e-2, improvedLevel = 5.0e-2}}
parseReportOptions :: Parser ReportOptions Source #
Command-line parser for ReportOptions
infoReportOptions :: ParserInfo ReportOptions Source #
Default command-line parser.
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 :: Name -> PerfT IO [[Double]] a -> IO () Source #
Run and report a benchmark to the console. For example,
reportMain "foo" (fap "sum" sum [1..1000])
would:
- run a benchmark for summing the numbers 1 to a thousand.
- look for saved performance data in other/foo-1000-MeasureTime-StatAverage.perf
- report on performance in isolation or versus the canned data file if it exists.
- exit with failure if the performace had degraded.
reportMainWith :: ReportOptions -> Name -> PerfT IO [[Double]] a -> IO () Source #
Run and report a benchmark to the console with the supplied options.
data CompareResult Source #
Comparison data between two results.
Instances
Show CompareResult Source # | |
Defined in Perf.Report showsPrec :: Int -> CompareResult -> ShowS # show :: CompareResult -> String # showList :: [CompareResult] -> ShowS # | |
Eq CompareResult Source # | |
Defined in Perf.Report (==) :: CompareResult -> CompareResult -> Bool # (/=) :: CompareResult -> CompareResult -> Bool # |
compareNote :: Ord a => CompareLevels -> Map a Double -> Map a Double -> Map a CompareResult Source #
Compare two results and produce some notes given level triggers.
Golden file options.
Instances
Generic Golden Source # | |
Show Golden Source # | |
Eq Golden Source # | |
type Rep Golden Source # | |
Defined in Perf.Report type Rep Golden = D1 ('MetaData "Golden" "Perf.Report" "perf-0.12.0.1-DwndM50BoxOBUtUp9NKWs5" '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)))) |
defaultGolden :: Golden Source #
Default filepath is "other/bench.perf"
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.