YoVDO

Argus - Debugging Performance Issues in Modern Desktop Applications with Annotated Causal Tracing

Offered By: USENIX via YouTube

Tags

USENIX Annual Technical Conference Courses Software Development Courses System Administration Courses Desktop Applications Courses

Course Description

Overview

Explore debugging techniques for performance issues in modern desktop applications through this USENIX ATC '21 conference talk. Dive into Argus, a novel causal tracing tool designed to overcome the limitations of existing methods when applied to desktop environments. Learn about strong and weak edges for modeling trace graph ambiguities, a beam-search-based diagnosis algorithm for selecting likely causal paths, and a new approach to comparing causal paths across normal and abnormal executions. Discover how Argus successfully diagnosed root causes for 12 infamous spinning pinwheel issues in popular macOS applications, including 10 previously unknown problems. Gain insights into the tool's implementation across multiple macOS versions and its low CPU overhead, making always-on tracing feasible. Understand the challenges of diagnosing desktop application performance, the shortcomings of existing causal tracing techniques, and the innovative solutions proposed by Argus to address these issues effectively.

Syllabus

Intro
Existing tools for diagnosing desktop apps
Desktop app diagnosis is under-investigated
An example of existing causal tracing
Existing 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
Where are the inaccuracies from? *Over-connections unnecessary searching paths
Why the inaccuracies happen to the desktop apps?
Key insights
Argus workflow
Annotated tracing graphs
Causal search: beam search based
Sub-graph comparison
diagnosis effectiveness
diagnosis cost Time cost of Argus on diagnosing the 12 real world performance issues Graph diagnosis Graph construction
tracing overhead
Conclusions
Related work


Taught by

USENIX

Related Courses

Asynchronous Programming in C# and .NET Core
Microsoft via edX
Build a Guessing Game Application using Java
Coursera Project Network via Coursera
Python : Comprehensive Bootcamp (Beginner To Professional)
Udemy
Complete Python & Python OOP with Exercises& Projects in2024
Udemy
Learn Java Programming - Beginners guide
Udemy