Overview
Explore the significant changes in goroutine preemption for scheduling and garbage collection introduced in Go 1.14 in this 24-minute conference talk from GopherCon 2020. Delve into the challenges posed by "tight loops" in earlier versions of Go, which could lead to mysterious throughput and latency issues, and even scheduler deadlocks. Learn how Go 1.14 implemented a unique "asynchronous preemption" solution that maintains zero overhead for regular execution and requires minimal extra metadata in the binary. Discover how this new approach eliminates difficult-to-diagnose long tail performance and stability issues by enabling goroutines to be interrupted and rescheduled at almost any point, ultimately enhancing the robustness and efficiency of Go programs.
Syllabus
GopherCon 2020: Austin Clements - Pardon the Interruption: Loop Preemption in Go 1.14
Taught by
Gopher Academy