1. 1. About this book
    1. 1.1. Our toolbox
  2. 2. What makes programs go fast?
    1. 2.1. Evaluation in Haskell
    2. 2.2. Allocation and data representation in Haskell
    3. 2.3. GHC optimizations
  3. 3. Classifying performance issues
  4. 4. Finding performance issues using profiling
    1. 4.1. Cost-center profiling
    2. 4.2. Heap profiling
  5. 5. Automated testing for performance regressions
  6. 6. Case studies
    1. 6.1. Parsing and processing
    2. 6.2. Streaming
    3. 6.3. Web service
    4. 6.4. Architecture
  7. 7. Where to go next
  8. Contributors

Haskell Performance Tuning Book

Where to go next

For now this will be a list of references

Understanding Haskell

  • High-performance Haskell
  • Low-level Haskell (STG)
  • Intro to low-level Haskell Optimization
  • Performance section in hsp
  • Haskell ghc illustrated

Performance tips

  • GHC - Producing a program that runs quicker
  • Good rules of thumbs (Reddit discussion)
  • Haskell to Core: Understanding Haskell Features Through Their Desugaring
  • Ideas for optimizing Haskell

Profiling

  • GHC - profiling
  • FP Complete/profiling
  • Optimizing Haskell Programs methodology
  • Memory fragmentation & deeper look
  • Profiling section in hsp

Tools

  • profiteur
  • profiterole
  • Info table profiling
  • Memory usage zurihac 2021 repo and talk
  • ghc-debug
  • ghc-events-analyze
  • eventful ghc
  • eventlog2html

Case studies

  • Performance case studies section in hsp
  • Effects for less
  • Sharing, Space Leaks, and Conduit and friends

Automated testing

  • Criterion
  • Tasty-bench
  • inspection-testing