perf-0.14.2.1: src/Perf.hs
-- | == Introduction
--
-- @perf@ provides tools for measuring the runtime performance of Haskell functions. It includes:
--
-- - time measurement via the [clock](https://hackage.haskell.org/package/clock) library.
--
-- - a polymorphic approach to what a 'Measure' is so that a wide variety of measurements such as counting, space and time measurement can share the same API.
--
-- - 'PerfT' which is a monad transformer designed to add the collection of performance information to existing code. Running the code produces a tuple of the original computation results, and a Map of performance measurements that were specified.
--
-- - functionality to determine performance order, in 'Perf.BigO'
--
-- - reporting functionality encapsulated in 'Perf.Report'. @perf@ can be run via 'cabal bench' and will, for example, error on performance degradation; see the project's cabal file for an example.
module Perf
( -- * re-exports
module Perf.Types,
-- | Representation of what a Performance 'Measure' is.
module Perf.Measure,
-- | Low-level time performance 'Measure' counting 'Nanos'
module Perf.Time,
-- | Low-level space performance 'Measure's based on GHC's allocation statistics.
module Perf.Space,
-- | Simple loop counter
module Perf.Count,
-- | Various (fast loop) algorithms that have been used for testing perf functionality.
module Perf.Algos,
-- | Order of complexity computations
module Perf.BigO,
-- | Reporting
module Perf.Report,
-- | Statistical support
module Perf.Stats,
)
where
import Perf.Algos
import Perf.BigO
import Perf.Count
import Perf.Measure
import Perf.Report
import Perf.Space
import Perf.Stats
import Perf.Time
import Perf.Types
import Prelude hiding (cycle)