Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

YouTube

An Introduction to Go Tool Trace

Gopher Academy via YouTube

Overview

Explore the execution tracer (go tool trace), one of Go's most powerful diagnosis tools, in this conference talk from GopherCon 2017. Learn how to leverage this complex yet invaluable tool to understand goroutine interactions in great detail, uncover latency bugs, and identify logical races. Dive into topics such as correct and effective concurrency management, parallelism exploitation, and timing-dependent bugs. Discover how to use the -race flag for testing, building, and installing Go programs. Examine trace views, sync blocking profiles, and goroutine analysis techniques. Gain insights into Go's garbage collection improvements, including parallel threads and Stop-The-World pauses. Understand the challenges of large heaps and awkward pauses in user code. Prepare yourself by practicing with these essential tools to enhance your Go programming skills and optimize your concurrent applications.

Syllabus

go tool trace for correct and effective concurrency
A special tool for Go's needs
goroutine scheduling instrumented
Concurrency, and how to manage it
Parallelism, and how to exploit it
A timing-dependent bug
#1: A race condition
go test -race go build -race go install -race
a logical race, not a data race
View trace
Sync blocking profile
Goroutine analysis
It's not a panacea
1. Testing with -trace flag
and large (40GB) heap
The GC is still improving
Go 1.1: GC uses parallel threads
#3A: Stop-The-World pauses
The Go 1.10 compiler should have a general, permanent fix
#3B: Other awkward pauses
User code works against that
Be prepared: practice using the tools

Taught by

Gopher Academy

Reviews

Start your review of An Introduction to Go Tool Trace

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.