Argus: Debugging Performance Issues in Modern Desktop Applications...
summary
Argus is a causal-tracing system that annotates trace graphs with strong and weak edges and uses a beam-search diagnosis to tolerate tracing ambiguities. It instruments macOS core libraries and some kernel points to collect always-on traces, reconstructs annotated graphs, and compares normal vs abnormal subgraphs to localize faults. Evaluation on 12 infamous macOS spinning-pinwheel bugs diagnoses the root cause in all cases, 10 previously unknown, with tracing overhead under 5% CPU and graph construction taking minutes to a few hours.
AI-written summary · about
chapters (17)
- 0:00Intro
- 0:53Existing tools for diagnosing desktop apps
- 1:55Desktop app diagnosis is under-investigated
- 2:24An example of existing causal tracing
- 3:34Existing causal tracing fails to diagnose desktop apps * It is hard to identify accurate execution segment boundaries in some threads Some execution segments have multiple incoming edges large search space
- 5:08Where are the inaccuracies from? *Over-connections unnecessary searching paths
- 5:38Why the inaccuracies happen to the desktop apps?
- 6:59Key insights
- 7:27Argus workflow
- 8:26Annotated tracing graphs
- 10:11Causal search: beam search based
- 11:12Sub-graph comparison
- 12:50diagnosis effectiveness
- 13:15diagnosis cost Time cost of Argus on diagnosing the 12 real world performance issues Graph diagnosis Graph construction
- 13:43tracing overhead
- 14:26Conclusions
- 15:02Related work
related talks
46mThe Hidden Secrets of Debugging
20mAn Interactive Debugger for Rust Trait Errors
34mVisualising program execution
38mFrom the Exorcist to Hercule Poirot
41mDebug like a scientist
29mHands on performance debugging with the browser in devtools
18mThe art of investigating problems in software
30mProfiling CPU and Memory on Linux, with Opensource Graphical Tools
