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

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

Usage examples can be found in app/perf-explore.hs and the project's readme.org.

Synopsis

re-exports

Various (fast loop) algorithms that have been used for testing perf functionality.

module Perf.Algos

Low-level time performance Measures counting Cycles

module Perf.Time

Order of complexity computations

module Perf.BigO

Low-level space performance Measures based on GHC's allocation statistics.

module Perf.Space

Reporting, including Golden file functionality.

module Perf.Stats

module Perf.Types