This document outlines best practices for writing high-performance Go code.
The first sections cover writing optimized code in any language. The later sections cover Go-specific techniques.
- Writing and Optimizing Go code
- How to Optimize
- Data Changes
- Algorithmic Changes
- Benchmark Inputs
- Program Tuning
- Optimization Workflow Summary
- Garbage Collection
- Runtime and Compiler
- Unsafe
- Common gotchas with the standard library
- Alternate Implementations
- CGO
- Advanced Techniques
- Assembly
- Optimizing an Entire Service
- Tooling
- Appendix
This is a work-in-progress book in Go performance.
There are different ways to contribute:
- add to or summarizes the resources in TODO
- add bullet points or new topics to be covered
- write prose and flesh out the sections in the book
Eventually sample programs to optimize and exercises will be needed (maybe).
Coordination will be done in the #performance channel on the Gophers slack.