Table of Contents
- Identifying Bottlenecks
- Choose the Correct Data Structures
- Profile and Benchmark to Your Heart's Content 30
- The Devil is in the Detail
- Parallelize for Performance
- I/O and Streaming
- Concurrency Performance
- Tweaking the Compiler and Runtime System
- GHC Internals and Code Optimizations
- Foreign Function Interface: Saving the Last CPU Cycle
- Programming for the GPU with Accelerate
- Scaling to the Cloud with Cloud Haskell
- Functional Reactive Programming
- Library recommendations
