Thoughts on Go performance optimization
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
README.md Fixing place of 'Optimzation Workflow Summary' in ToC Oct 15, 2018
TODO benchmarking talk Apr 12, 2018
performance-ptbr.md Fixing typos Oct 10, 2018
performance-zh.md Update performance-zh.md Oct 15, 2018
performance.md add benchmark evaluation checklist Jan 3, 2019

README.md

go-perfbook

Buy Me A Coffee

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.

Multiple Language Versions

Table of Contents

  1. Writing and Optimizing Go code
  2. How to Optimize
    1. Optimization Workflow
    2. Concrete Optimization Tips
  3. Data Changes
  4. Algorithmic Changes
  5. Benchmark Inputs
  6. Program Tuning
  7. Optimization Workflow Summary
  8. Tooling
    1. Profiling
    2. Tracer
  9. Garbage Collection
  10. Runtime and Compiler
  11. Unsafe
  12. Common gotchas with the standard library
  13. Alternate Implementations
  14. CGO
  15. Advanced Techniques
  16. Assembly
  17. Optimizing an Entire Service
  18. Appendix
    1. Implementing Research Papers

Contributing

This is a work-in-progress book in Go performance.

There are different ways to contribute:

  1. add to or summarizes the resources in TODO
  2. add bullet points or new topics to be covered
  3. 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.