Making Sense of Multi-Threaded Application Performance at Scale with NonSequitur
summary
NonSequitur compresses multi‑threaded traces with a domain‑specific merge of identical call stacks, leaves long events uncompressed so latency spikes remain visible, and enforces per‑interval size limits so millions of events reduce to a few hundred. Evaluation uses real traces from RocksDB and WiredTiger, a 42‑participant study that reports participants scoring up to 11× higher and spending about 3× less time on some tasks. Compression is lossy, yields non‑linear x‑axes and thread views that require hovering to align corresponding intervals.
AI-written summary · about
chapters (10)
- 0:00Performance bugs in multi-threaded apps
- 1:25Performance comprehension challenges
- 2:27Limitations of flame graphs and Chrome Trace
- 3:52NonSequitur’s compression-based approach
- 5:40Call stack compression trade-offs
- 7:27Visualization with long event thresholds
- 9:36NonSequitur vs alternative tools
- 12:46Thread activity comprehension study
- 13:51Findings and tool capabilities
- 14:13Q&A
related talks
01h 02mWriting high performance code in .NET
32mSoftware Performance: A Shape Not a Number
42mWhen the OS gets in the way
48mFantastic Performance and Where to Find It
15mMimesys: Generating Realistic Executable Testing Environments from Resource Usage Traces
24mDIY::Thread.profile -- Light-Weight Profiling in Pure Ruby
49mResponding in a Timely Manner
27mNeed for SPEED: Site Performance Efficiency, Evaluation and Decision
