Skip to content

Phase 1

No due date 2% complete

Phase 1: Measurement and Observation

The goal of this phase is two fold. First, finish a section on reading modern
core, complete with a description of all the information that is usually
stripped out of the "Reading Core" tutorials. Why? Because reading and
understanding Core is a major barrier to performance optimizations, it is what
the experts do, wha…

Phase 1: Measurement and Observation

The goal of this phase is two fold. First, finish a section on reading modern
core, complete with a description of all the information that is usually
stripped out of the "Reading Core" tutorials. Why? Because reading and
understanding Core is a major barrier to performance optimizations, it is what
the experts do, what GHC perceives, and can help diagnose large classes of
performance-related behaviors. Second, a section on attaining reliable
benchmarks on Linux (this could be expanded to other platforms, but per the
Haskell Survey the vast majority of Haskell developers work on and target
Linux). This phase is complete when:

  • : Section on reading Core is complete
    • : A description of what allocation in Core is complete.
    • : A description of demand analysis information in Core is complete.
    • : A description of the simplifyer information in Core is complete.
    • : A description of the occurrence analysis information in Core is complete.
    • : Descriptions of poor performance patterns, and a description of why
      they are poor performing, in Core is complete.
  • : Section on how to reliably benchmark on Linux is complete.
  • : Section on benchmarking utilities is complete, Specifically these
    libraries and tools:
    • : (Haskell Library) Criterion
    • : (Haskell Library) Gauge
    • : (Haskell Library) Tasty-Bench
    • : (Haskell Library) Weigh
    • : (Utility) Perf
    • : (Utility) Cachegrind
  • : three more sections on heap profiling in Part 1 are complete.
  • : three more sections of Part 2 are complete and these sections refer to
    either the Core reading guide or the benchmarking section.
  • : Two case studies are complete and show real world poor performance
    patterns in Core, and associated improvements in benchmarking data.
  • : Community check in has been done on Discourse.Haskell after each other
    bullet is complete
Loading