Speeding up Go by designing the app with CPU architecture in mind ☠️
summary
Explains how CPU memory and cache behavior affects Go application performance and shows techniques to design Go programs with CPU architecture in mind. Covers concepts of mechanical sympathy (cache usage, memory access patterns) and practical approaches in Go to structure data and code for better cache locality and reduced contention.
AI-written summary · about
chapters (10)
- 0:00Introduction
- 1:10Structures and performance
- 5:11CPU cache hierarchy
- 9:02Cache lines and locality
- 13:40Linked lists vs arrays
- 17:17Structure alignment
- 21:37Refactoring structures
- 24:51Example with gozstd
- 26:59False sharing problem
- 31:15Q&A
related talks
34mGolang: Specific Performance Issues
40mSqueezing Maximum Performance Out of Go
46mOptimizing Concurrent Applications
01h 02mKeeping it Simple With Go
26mGo is Boring... And That's Fantastic!
44mGo Profiling and Observability from Scratch
51mEvolving the Go Memory Manager's RAM and CPU Efficiency
30mMemory Management in Go: The good, the bad and the ugly
