perf-0.13.0.0: Performance methods and monad.
Safe HaskellNone
LanguageGHC2021

Perf

Contents

Description

Introduction

perf provides tools for measuring the runtime performance of Haskell functions. It includes:

  • time measurement via the 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 BigO
  • reporting functionality encapsulated in 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.
Synopsis

re-exports

module Perf.Types

Representation of what a Performance Measure is.

Low-level time performance Measure counting Nanos

module Perf.Time

Low-level space performance Measures 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

Statistical support

module Perf.Stats