2. Measurement, Profiling, and Observation¶
- 2.1. Binary Profiling and Probing
- 2.1.1. Reading Asm
- 2.1.2. The Linux time command
- 2.1.3. The Linux perf utility
- 2.1.3.1. What is Tables-Next-to-Code
- 2.1.3.2. So What is the Problem?
- 2.1.3.3. Assessing the impact of tables-next-to-code
- 2.1.3.4. How does Tables Next to Code Affect Performance
- 2.1.3.5. Awards
- 2.1.3.6. Inspecting with Perf
- 2.1.3.7. Conclusion
- 2.1.3.8. Programmatically Consuming Perf Output
- 2.1.3.9. Helpful One Liners
- 2.1.3.10. References and Further Reading
- 2.1.3.11. Footnotes
- 2.1.4. Dtrace
- 2.1.5. Valgrind
- 2.1.6. Using Cachegrind
- 2.2. Thread Level Profiling
- 2.3. Cmm Probes and Profiling
- 2.4. Stg and RTS Probes and Profiling
- 2.5. Core Probes and Profiling
- 2.6. Haskell Level Probing and Profiling
- 2.6.1. GHC Flags
- 2.6.2. Info-Table Profiling
- 2.6.3. Eventlog
- 2.6.3.1. Requirements
- 2.6.3.2. Restrictions
- 2.6.3.3. What Information Do I Receive From Eventlog?
- 2.6.3.4. When should I use Eventlog
- 2.6.3.5. The Running Example
- 2.6.3.6. The Setup
- 2.6.3.7. Visualizing the Heap: Eventlog by Type
- 2.6.3.8. Adding Our Own Events
- 2.6.3.9. Summary
- 2.6.3.10. References and Further Reading
- 2.6.4. Criterion, Gauge, and Tasty-Bench
- 2.6.5. Flamegraphs
- 2.6.6. Weigh
- 2.6.7. Inspection Testing
- 2.6.8. Nothunks