perf-0.12.0.1: Low-level run time measurement.
Safe HaskellSafe-Inferred
LanguageGHC2021

Perf

Contents

Description

Introduction

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

  • time measurement via reading the RDTSC register (TSC stands for "time stamp counter"), which is present on all x86 CPUs since the Pentium architecture. For more details, see https://en.wikipedia.org/wiki/Time_Stamp_Counter
  • abstraction of what is a Measure so that the library includes both space and time measurement with 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 in Report. perf can be run via 'cabal bench'; 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 Cycles

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