// the find
davecheney/gophercon2018-performance-tuning-workshop
GopherCon 2018 Performance Tuning Workshop
Workshop materials from GopherCon 2018 by David Cheney and Francesc Campoy on diagnosing and fixing Go performance problems: benchmarking, pprof profiling, the execution tracer, GC behavior, and compiler optimizations. It's for developers who already know Go and want a structured way to find real bottlenecks, not a beginner intro.
Written by two people who've actually worked on the Go toolchain and runtime, so the profiling and tracer content is first-hand rather than secondhand summary. Each section pairs a markdown writeup with runnable Go code (benchmarks, escape-analysis examples, a goroutine ping-pong tracer demo) instead of static slides. The ordering mirrors a real debugging workflow — write a benchmark, profile it, read the compiler's escape analysis, then inspect the execution tracer — rather than treating each tool in isolation.
Untouched since December 2018; Go's compiler, GC, and benchmarking APIs (PGO, testing.B.Loop, newer pprof output) have changed enough that some commands and advice won't match current Go. This is live workshop content, not a self-contained tutorial — exercises like mandelweb.md have no provided solutions and some sections clearly assume an instructor filling gaps verbally. No CI and nothing indicating the examples (e.g. popcnt) have been checked against newer Go versions, so compiler-behavior-dependent demos may no longer produce the stated results.