Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Go's execution tracer

Go's execution tracer

Go's tools can help you diagnose problems with your applications—if you can wield them effectively. The Execution Tracer provides great visibility into the scheduler, to help solve timing dependent bugs and track down latency problems. Learn how to use the tools before you have a time-critical need.

Rhys Hiltner

October 10, 2016
Tweet

More Decks by Rhys Hiltner

Other Decks in Technology

Transcript

  1. $ go doc runtime/trace package trace // import "runtime/trace" Go

    execution tracer. The tracer captures a wide range of execution events ... A trace can be analyzed later with 'go tool trace' command.
  2. $ go doc cmd/trace Trace is a tool for viewing

    trace files. ... View the trace in a web browser: go tool trace trace.out
  3. The tool in three demos: 1. A timing-dependent bug 2.

    What it doesn't show 3. Latency during GC
  4. GC

  5. 1. Allocation is counter to GC 2. Must assist (or

    steal credit) 3. Can't steal early in GC 4. Assists are amortized 5. 12MB minimum assist* * based on concurrent GC pacing
  6. How can the tool help you? 1. See time-dependent issues

    2. Complements other profiles 3. Find latency improvements