Then I think we should present it from the bottom-up:
binary profiling: perf, cachegrind, etc. Tools that are language agnostic. Limitations due to Haskell execution model
multi-thread level: OS vs Haskell threads. ThreadScope, etc.
Cmm level: if we have Cmm specific probes?
Stg level + rts stats: G-machine level probes: ticky, late cost centers, etc. RTS stats: GC, applications, etc. The bulk of what makes Haskell different to profile than most other languages
I think this is a great idea. Then at the beginning of the book we can have a triage chapter that is observe this symptom --> check this chapter to guide readers to the right place.
I'd like to suggest refactoring the Measurement / Profiling chapter.
I've written some introduction text: https://github.com/haskellfoundation/hs-opt-handbook.github.io/pull/95
Then I think we should present it from the bottom-up:
What do you think?