Go to file
Damian Gryski a047903479
Merge pull request #54 from ankur-anand/master
Efficiently Compare Strings with strings.EqualFold
2019-09-26 08:05:17 -07:00
.github Create FUNDING.yml 2019-05-23 11:40:10 -07:00
performance-es.md Add Spanish translation - 'Optimization Workflow' section (#49) 2019-05-21 16:34:07 -07:00
performance-ptbr.md Translate the section "How to Optimize" for pt-BR (#30) 2019-07-15 10:16:50 -07:00
performance-zh.md fix typo error (#48) 2019-05-10 00:38:11 -07:00
performance.md Efficiently Compare Strings with strings.EqualFold 2019-09-26 11:34:25 +05:30
README-es.md Add spanish translation - 'Algorithmic changes' section (#39) 2019-04-23 16:27:02 -07:00
README.md move tooling section to the end given I'm not sure I'm going to work on it 2019-04-13 08:09:29 -07:00
TODO a few more notes 2019-04-25 16:44:17 -07:00

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. Garbage Collection
  9. Runtime and Compiler
  10. Unsafe
  11. Common gotchas with the standard library
  12. Alternate Implementations
  13. CGO
  14. Advanced Techniques
  15. Assembly
  16. Optimizing an Entire Service
  17. Tooling
    1. Profiling
    2. Tracer
  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.